перезагрузите мой сервер приложений автоматически через скрипт upstart

У меня есть машина Ubuntu 12.04, в которой я запускаю свой сервер приложений C ++, который я контролирую с помощью сценария выскочки. Значение, когда мой сервер приложений падает, мой скрипт upstart перезапустит их автоматически, и всякий раз, когда моя машина ubuntu перезагрузится / перезапустится, мой скрипт upstart снова перезапустит мой сервер приложений.

Ниже мой сценарий выскочки:

start on runlevel [2345]
stop on runlevel [016]

chdir /opt/process/process_server
respawn

post-start script
    echo "App server started at `date +"%F %T"` on `hostname -f`" | mailx -r "abc@host.com" -s "Process Started" "pqr@host.com"
end script

post-stop script
  sleep 30
end script

limit core unlimited unlimited
limit nofile 8092 8092
setuid caprti
exec ./process_server --config_file=../config/process.init

Теперь странно, я вижу это по крайней мере дважды - моя машина ubuntu была перезапущена, и я не знаю, как и кто это сделал, но мой сервер приложений не был перезагружен вообще, и я не знаю, почему ? Я тестировал это несколько раз самостоятельно, перезагружая тот же самый ящик, набрав "sudo reboot", и всякий раз, когда эта машина возвращается, я вижу, что мой сервер приложений перезапускается автоматически.

При каких условиях во время перезагрузки моего Ubuntu не приведет к тому, что мой сервер приложений будет перезагружен из моего выше сценария выскочки? Есть ли что-нибудь, что мне не хватает в моем сценарии Upstart?

Также как я могу проверить, что мой сценарий Upstart пытался перезагрузить мой сервер приложений во время последней перезагрузки, но по какой-то причине он не удался, если это то, что произошло с моим для тех двух раз?

1
задан 16 July 2015 в 21:05

1 ответ

Отладка

По умолчанию журналы системного хранения файлов выскочки в /var/log/upstart. Как правило, он хранит имя_файла_файла в файле /var/log/upstart. Посмотрите на /var/log/upstart/file.log. где file.log - это журнал вашего файла инициализации /etc/init/file.conf. вы можете легко определить, что вам не хватает в сценарии выскочки.

Отладка init-checkconf /etc/init/file.conf или с большим режимом отладки init-checkconf -d /etc/init/file.conf

использует start on local-filesystems или start on (local-filesystems and net-device-up IFACE!=lo) вместо start on runlevel [2345]. вы выполняете команду, которая нуждается в локальной файловой системе, и если сетевое взаимодействие также не определено, чем добавление сети или проверка других требований. все еще проблема, а затем запись в журнал или ошибка.

1
ответ дан 23 May 2018 в 19:00

Другие вопросы по тегам:

Похожие вопросы: