x 분마다 프로그램을 다시 시작 하시겠습니까?


10

오픈 소스 라이브러리를 사용하는 mutithreaded Java 프로그램이 있으며이 라이브러리에는 교착 상태를 유발하는 버그가 있습니다. 버그를보고했지만 문제를 해결하는 데 시간이 걸리므 로이 프로그램을 계속 사용하는 한 2-3 시간마다 다시 시작하면 나를 위해 일할 것입니다. x 분마다 프로그램을 다시 시작할 수있는 방법이 있습니까?


3
2-3 시간마다 작업을 종료하고 다시 시작하는 스크립트를 작성할 수 있습니다.
gt6989b

@ gt6989b에 대한 후속 조치를 취하기 위해 2-3 시간이 지날 때까지 반복하고 기다린 다음 프로그램을 다시 시작하는 Python 스크립트를 작성합니다. Python 하위 프로세스sh 모듈이 유용하다는 것을 알 수 있습니다 .
획기적인

답변:


12

당신은 당신의 작업을 시도 할 수 있습니다 crontab:

crontab -e

그때

 11 */3 * * * /usr/bin/pkill -f appli_name; /path/to/appli_name & &>/dev/null

crontab명령 평균 :

  • 3 시간마다
  • appli_name 종료
  • 백그라운드에서 appli_name을 시작하십시오.

이것이 현재 비슷한 문제를 해결하는 방법입니다. 소프트웨어는 4-5 일 후에 상태 파일을 손상시키는 경향이 있기 때문에 매일 밤 0:00시에 cron을 통해 특정 소프트웨어를 다시 시작합니다. 소프트웨어를 서비스로 설치 한 다음 service <appname> restart > /dev/null 2>&1원하는 시간에 실행 했습니다.
다니엘 앤더슨

2

작업에 맞게 Supervisor 를 구성하는 것이 좋습니다 . 프로세스를 모니터링하고 실패하면 다시 시작하며 출력 리디렉션 및 기타 유용한 기능을 제공합니다. 프로그램 시작 예제를 참조하십시오 .


+1,이 솔루션은 반대로 "보다 깨끗한"솔루션 인 것으로 보입니다 crontab(두 솔루션 모두 제대로 작동하지만). 그러나 Supervisor가 프로세스를 보낼 신호와시기 (예 : 언제 보낼지 SIGTERM, 보내기 전에 기다리는 시간 SIGKILL등) 를 구성하는 것이 더 좋습니다 .
획기적인
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.