使用 Haskell angel 进行进程监控

使用 Haskell angel 进行进程监控

我正在尝试使用 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 }

您可能会进入无限循环,因为您的结构名称与要执行的应用程序相同。

相关内容