Как узнать статус сценариев выхода init.d, которые возвращают 0 в случае ошибки?

Как узнать статус сценариев выхода init.d, которые возвращают 0 в случае ошибки?

Кажется, что многие 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так, чтобы он выполнял обычное ведение журнала, а затем exits с кодом выхода, который был указан изначально.

Связанный контент