0

daemon() 呼び出しを使用する C で書かれたデーモンがあります。

予期せず失敗した場合に、これを復活させたいと思います。

Ubuntu 8.04でかなり古いバージョンのupstart 0.3.9を使用しています。

次のファイル (/etc/event.d/my-daemon) を作成しました。

start on startup
stop on shutdown
respawn
daemon
exec /usr/bin/my-daemon

状態:

# status my-daemon
my-daemon (stop) waiting

始める:

# start my-daemon

my-daemon (start) waiting
my-daemon (start) starting
my-daemon (start) pre-start
my-daemon (start) spawned, process 32631
my-daemon (start) post-start
my-daemon (start) running

期待どおりに実行すると表示ps aux | grep my-daemonされます。kill -9次に、リスポーンすることを期待して殺しますが、再発行ps auxしてもその後は何も表示されません。私status my-daemonが得ること:

my-daemon (start) running

何か案は?

4

1 に答える 1

0

0.3.9がデーモンプロセスを期待どおりに処理するとは思いません(SIGCHLDを待機していることと関係があります)。私にとっての回避策は、プロセスとリスポーンが機能することをバックグラウンド/デーモン化しないことでした。

于 2012-01-09T16:43:16.940 に答える