Haskell angel によるプロセス監視

Haskell angel によるプロセス監視

私はHaskellのangelプロセス監視ツールを使用してプロセスを監視しようとしています。 https://github.com/MichaelXavier/エンジェル いかなる種類の 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 }

構造体名が実行されるアプリと同じであるため、無限ループに陥る可能性があります。

関連情報