Upstart没有重生守护进程

时间:2012-01-06 16:06:18

标签: ubuntu upstart

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

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

我在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

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我认为0.3.9不会按预期处理守护程序进程(与等待SIGCHLD有关)。对我来说,一个解决方法就是不进行背景/守护进程和重生工作。