我正在尝试使用 haskell 的 angel 进程监控工具来监控一个进程。 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
示例应用程序和我尝试运行 Web 服务器时都会这样做。这是我的 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 }
您可能会进入无限循环,因为您的结构名称与要执行的应用程序相同。