У меня есть машина Ubuntu 12.04, в которой я выполняю свой сервер приложений C++, которым я управляю через новомодный сценарий. Значение каждый раз, когда мой сервер приложений разрушает мой новомодный сценарий, перезапустит их назад автоматически и каждый раз, когда моя машина человечности перезагружается/перезапускается, мой новомодный сценарий перезапустит мой сервер приложений снова.
Ниже мой новомодный сценарий:
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
Теперь странная вещь, я имею, видят это по крайней мере дважды - Моя машина человечности была перезапущена, и я не знаю, как и кто сделал это, но мой сервер приложений не был перезапущен вообще, и я не знаю почему? Я протестировал это многократно один перезагрузка того же самого поля путем ввода "sudo reboot"
и каждый раз, когда та машина возвращается, я вижу, что мой сервер приложений перезапущен автоматически.
Под каким условие во время перезагрузки моего поля Ubuntu не приведет к моему серверу приложений, перезапускаемому от моего выше новомодного сценария? Есть ли что-нибудь, что я пропускаю в своем Новомодном сценарии?
Также, как я проверяю, что мой Новомодный сценарий пытался перезапустить мой сервер приложений во время последней перезагрузки, но это перестало работать по некоторым причинам, если это - то, что происходило с моим в течение тех двух раз?
У меня есть некоторые примечания или подсказки, которые могут помочь:
respawn
строка файла конфигурации, явно не указывая пределы имеет значения по умолчанию.
6,28 переикры
Далее обратите внимание на это, если задание не указывает
respawn limit
строка файла конфигурации, а такжеrespawn
строка файла конфигурации, задание будет иметь предел переикры по умолчанию примененным (см.respawn limit
).6,29 пределов переикры
Перепорождение подвергается пределу. Если задание будет повторно порождено больше, чем времена КОЛИЧЕСТВА в секунды ИНТЕРВАЛА, то это будет считаться, имея глубже проблемы и будет остановлено. КОЛИЧЕСТВО по умолчанию равняется 10. ИНТЕРВАЛ по умолчанию составляет 5 секунд.
Использование:
respawn
respawn limit unlimited
Проверьте его журналы как в то, как отладить новомодные сценарии?. Можно создать собственные журналы для отслеживания более определенного использования задач pre-start
, post-start
& post-stop
сценарии и переменные проверки как RESULT
и PROCESS
, посмотрите Выскочку: отчет (электронная почта, журнал) на переикре и отказе
start on runlevel [2345]
!!! Вы уверены, что runlevel является единственным необходимым условием запустить этот сервис? примеры: делает ту потребность демона C++ filesystem
, networking
.. Посмотрите, Какие события доступны Выскочке?
Кто-то использовал start on stopped rc
постараться не искать каждое событие, источник: Запустите jackd с приоритета в реальном времени с выскочкой
Ссылки:
Отладка
системой по умолчанию хранят журналы новомодных файлов в
/var/log/upstart
. обычно, это снабжает name_of_upstartfile.log в/var/log/upstart
. Изучите/var/log/upstart/file.log
. где file.log является журналом Вашего init файла/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]
. Вы выполняете команду, которым нужна локальная файловая система и при сетях также nedded, чем добавляют сети или проверяют другое требование. все еще проблема затем отправляет журнал или ошибку.