2012-07-03 4 views
2

특정 프로세스를 시작할 때 특정 시간에 시작해야하는 여러 프로세스 (주로 쉘 스크립트)가 있으며 나중에 몇 시간 후에 종료해야합니다. 지금은 cron을 통해 시작한 다음 다른 cron 작업을 사용하여 프로세스 ID를 얻고 죽입니다. 가장 똑똑한 방법은 아니며, 특히 동일한 스크립트를 여러 번 실행하는 경우에 유용합니다.시간을 기준으로 프로세스 시작 및 종료

(서브 쉘 또는 포크에서) 프로세스를 시작한 후 주어진 시간에 종료 할 수있는 래퍼가 있는지 궁금합니다. 인터넷 검색은 그다지 양보하지 않았기 때문에 모든 것을 아는 stackoverflow 커뮤니티에 직접 물어보고 내 자신의 글을 쓰고 싶었습니다.

감사합니다.

답변

0

올바른 해결책은 이미 가지고있는 것입니다. cron을 통해 시작하고 cron을 통해 끝납니다. 동일한 스크립트의 여러 인스턴스 문제에 대해서는이 것이 필요합니다. 요구 사항에 따라 동일한 스크립트의 인스턴스가 두 개 이상 실행되어야합니다.

프로세스 ID를 가져와을 삭제하십시오. 스크립트가 pid를 멈추는 데 사용하는 파일에 기록했다는 말을 할 때? 아니면 ps/pidof을 사용 하시겠습니까?

0

Monit은 프로세스를 제어/모니터링하는 래퍼로 사용할 수있는 훌륭한 도구입니다.

귀하의 상황은 process uptime에 기반한 조치를 취하는 서비스 테스트 기능에 해당됩니다.

check process myapp with pidfile /var/run/myapp.pid 
    start program = "/etc/init.d/myapp start" 
    stop program = "/etc/init.d/myapp stop" 
    if uptime == 3 hours then stop 
관련 문제