Кажется, что многие init.d
скрипты возвращают 0 при неудаче, несмотря наэти рекомендации. Например, в nginx
, запустив напрямую:
/usr/sbin/nginx -t # returns 1 (with a bad config)
и работает через init.d
:
service nginx configtest # returns 0 (with a bad config)
Каков наилучший способ управления отсутствующим кодом статуса? Кажется, есть несколько вариантов:
- Анализируйте вывод, ища «fail» при каждом вызове команды.
- Обновите
init.d
скрипты, чтобы почтитьожидаемые коды описаны здесь. - Обновите
log_end_msg
его/lib/lsb/init-functions
так, чтобы он выполнял обычное ведение журнала, а затемexit
s с кодом выхода, который был указан изначально.