프로그램의 일일 실행 시간을 설정하는 깔끔한 방법

프로그램의 일일 실행 시간을 설정하는 깔끔한 방법

약간 멍청한 질문이지만, 내 컴퓨터가 켜져 있는 시간에 관계없이 매일 오전 5시부터 오전 6시까지, 오후 6시부터 7시까지만 네트워크 데몬(wicd)이 내 컴퓨터에서 실행되도록 하고 싶습니다. 프로세스가 실행 중이지만 해당 시간이 아닌 경우 프로세스를 종료해야 합니다. 이를 수행하는 가장 쉬운 방법은 무엇입니까? 분명히 crontab을 사용하고 wicd가 오전 5시와 오후 6시에 실행되는 cronjob을 작성하면, 예를 들어 killall이 오전 6시와 오후 7시에 이를 제거하면 문제가 발생할 것입니다. 처음에 실행하므로 초기화 스크립트(내 초기화용 SysV)를 작성하여 초기화 시 wicd를 실행하거나 실행하지 않을 수 있습니다. 여기에서 현재 시간을 확인합니다. 잘라내야 할 것 같지만 이것이 유일한 작업 방법입니까? 이 문제를 해결할 수 있는 방법이 있습니까? 아니면 컴퓨터가 켜져 있는 시간에 관계없이 지정된 시간에만 프로그램이 실행되도록 하는 더 쉬운 방법이 있습니까?

답변1

한 가지 방법은 다음과 같습니다.CF 엔진, 정책은 대략 다음과 같습니다.

bundle agent mybundle {

  services:
    Hr5|Hr18::
      "wicd"
        service_policy => "start";

    !(Hr5|Hr18)::
      "wicd"
        service_policy => "stop";

}

CFEngine의 기본 실행 간격은 5분마다입니다(호스트 그룹이 동시에 실행되지 않도록 지연이 있음). 따라서 예에서는 오전 5시 4분에 시스템을 시작한 후 서비스가 다음 시간 내에 실행됩니다. 5 분. 그런 다음 다음에 오전 6시 이후(6시에서 6시 5분 사이) CFEngine을 실행하면 서비스가 중지됩니다.

관련 정보