Upstart не возрождается демон - PullRequest
0 голосов
/ 06 января 2012

У меня есть демон, написанный на C, который использует вызов daemon ().

Я хочу, чтобы выскочка возродилась, если он неожиданно потерпит неудачу.

Я использую довольно старую версию upstart 0.3.9 в Ubuntu 8.04.

Я создал следующий файл (/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 голосов
/ 09 января 2012

Я не думаю, что 0.3.9 обрабатывает процессы демона, как ожидалось (что-то с этим связано, ожидая SIGCHLD). Обходным решением для меня было просто не задевать фон / демонизировать процесс, и респаун работает.

...