我正在嘗試使用 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
}
我已經給了angel+x權限。
關於為什麼它不斷重新啟動有什麼想法嗎?
答案1
這是設計使然。 ls 完成後,angel 將等待 7 秒並重新啟動。再一次,ls 將立即完成,angel 將等待 7 秒然後重複...
答案2
你能嘗試嗎
ls_lala { exec = "ls" stdout = "/tmp/ls_log" stderr = "/tmp/ls_log" 延遲 = 7 }
您可能會進入無限循環,因為您的結構名稱與要執行的應用程式相同。