0

我有一个用 C 语言编写的守护程序,它使用 daemon() 调用。

如果它意外失败,我希望新贵重生。

我在 Ubuntu 8.04 上使用了一个相当老的新贵版本,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 回答