Haskell의 엔젤 프로세스 모니터링 도구를 사용하여 프로세스를 모니터링하려고 합니다. https://github.com/MichaelXavier/Angel 모든 종류의 HUP 신호를 수신하지 않고 프로세스가 실행되면 무한 루프에서 프로세스가 계속 다시 시작됩니다.
아래를 참조하세요...
[2013/12/18 22:25:15] {- program: ls -} RESTART
[2013/12/18 22:25:15] {- program: ls -} START
[2013/12/18 22:25:15] {- program: ls -} Spawning process with env Just []
[2013/12/18 22:25:15] {- program: ls -} RUNNING
[2013/12/18 22:25:15] {- program: ls -} ENDED
[2013/12/18 22:25:15] {- program: ls -} WAITING
[2013/12/18 22:25:22] {- program: ls -} RESTART
[2013/12/18 22:25:22] {- program: ls -} START
[2013/12/18 22:25:22] {- program: ls -} Spawning process with env Just []
[2013/12/18 22:25:22] {- program: ls -} RUNNING
[2013/12/18 22:25:22] {- program: ls -} ENDED
[2013/12/18 22:25:22] {- program: ls -} WAITING
[2013/12/18 22:25:29] {- program: ls -} RESTART
[2013/12/18 22:25:29] {- program: ls -} START
[2013/12/18 22:25:29] {- program: ls -} Spawning process with env Just []
... etc
웹 서버를 실행하려고 할 때뿐 아니라 예제 앱에서도 이 작업을 수행합니다. 여기 내 conf 파일이 있습니다 (예제에서 바로)
ls {
exec = "ls"
stdout = "/tmp/ls_log"
stderr = "/tmp/ls_log"
delay = 7
}
나는 천사에게 +x 권한을 부여했습니다.
왜 무한히 다시 시작되는지에 대한 아이디어가 있습니까?
답변1
이것은 의도적으로 설계된 것입니다. ls가 완료되면 angel은 7초 동안 기다렸다가 다시 시작합니다. 다시 한 번, ls는 즉시 종료되고 angel은 반복하기 전에 7초를 기다립니다...
답변2
시도해 볼 수 있나요?
ls_lala { exec = "ls" stdout = "/tmp/ls_log" stderr = "/tmp/ls_log" 지연 = 7 }
구조체 이름이 실행될 앱과 동일하기 때문에 무한 루프에 빠질 수 있습니다.