У меня есть supervisord
, установленный на моем Ubuntu 10.04, и он постоянно запускает процесс Java и должен восстанавливать (перезагружать) процесс, когда он каким-то образом умирает или вылетает .
На моем htop
я отправляю сигналы SIGKILL, SIGTERM, SIGHUP, SIGSEGV этому Java-процессу и смотрю файл /etc/logs/supervisord.log
и это говорит.
08:09:46,182 INFO success: myprogram entered RUNNING state,[...]
08:38:10,043 INFO exited: myprogram (exit status 0; expected)
В 08:38
я завершаю процесс с помощью SIGSEGV. Почему он завершается с кодом 0 и почему supervisord
не перезапускает его вообще?
Весь мой supervisord.conf
об этой конкретной программе выглядит следующим образом:
[program:play-9000]
command=play run /var/www/myprogram/ --%%prod
stderr_logfile = /var/log/supervisord/myprogram-stderr.log
stdout_logfile = /var/log/supervisord/myprogram-stdout.log
Процесс работает нормально, когда запускаю supervisord, но не лечится.
Кстати, есть идеи, как запустить supervisord как службу, чтобы она автоматически запускалась при перезагрузке всей системы?