【问题标题】:Upstart not respawning daemon新贵没有重生守护进程
【发布时间】:2012-02-04 08:28:20
【问题描述】:

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

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

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

有什么想法吗?

【问题讨论】:

    标签: ubuntu upstart


    【解决方案1】:

    我认为 0.3.9 没有按预期处理守护进程(与它等待 SIGCHLD 有关)。对我来说,一个解决方法是不要后台/守护进程并且重生工作。

    【讨论】: