Upstart, нет отзывов, если запуск не удался
У меня есть демон в /opt/xyz/bin/xyz. К сожалению, он не может перейти в фоновый режим и не сможет сделать это в течение следующего полугода. Моя проблема заключается в следующем: ввод
service xyz start
просто возвращается
xyz start/running, process 23484
Всегда, даже когда он сразу выходит с кодом выхода 1. Мой конфиг такой:
$ cat /etc/init/xyz.conf
description "XYZ"
start on started networking
stop on shutdown
exec /opt/xyz/bin/xyz
В остальном работает нормально. Upstart распознает, когда процесс уже запущен, остановка также работает нормально.
Какие-либо предложения?
1 ответ
Вам необходим раздел после запуска, который будет запрашивать службу о том, предоставляет ли она какую-либо службу, которую она должна запустить. Так что-то вроде
post-start script
for try in 1 2 3 4 5 ; do
if xyzadmin --ping ; then
exit 0
fi
sleep 1
done
logger -t xyz-upstart -p daemon.err "failed to start within $try seconds, aborting"
exit 1
end script
При добавлении возможности демонизации вашего сервиса, если это вообще возможно, убедитесь, что он не разветвляется до тех пор, пока не будет готов обработать запросы, тогда "ожидаем, что форк" должным образом задержит условие "запущено", в противном случае вам все равно понадобится этот пост. -Начните.