Сервис --status-all -> при чем здесь столбец [? ], [+] и [-] значит?


13

Если я запускаю команду «service --status-all», каждая (запущенная?) Служба отображается в формате столбца. Первый столбец имеет либо [? ], [+] или [-] перед именем службы. Что представляет этот столбец? Что значит?, + И - значит?

Извините, если это простой вопрос. Я искал в Интернете ~ 30 минут, прежде чем просто прийти сюда и спросить.

Я даже нашел это: что означают символы в сервисе --status-all? где «правильный» ответ гласит: «Рисует [+] или [-] в зависимости от того, был ли статус выхода нулевым или ненулевым, соответственно.».

Итак, я думаю, мой новый вопрос: что означает статус ноль и ненулевое значение (!?!?!)?

Ответы:


12

Ну, это просто коды выхода. После того, как что-то выполнено, оно может вернуть 8-битное целое число (0-255), чтобы указать, как оно вышло.

  • Ноль (который подразумевается, если ничего не возвращается) означает, что приложение дошло до конца того, что оно должно было сделать, и завершилось естественным образом.
  • Ненулевые коды (1-255) могут означать все, что хочет приложение. Страница man ( man <command>) обычно показывает, что означают эти коды.

С точки зрения вопроса, не думайте об этом:

  • + означает, что он работает,
  • -означает, что это не так ( могло произойти сбой - возможно, оно никогда не началось), и
  • ?означает, что сервисы не имеют statusкоманды, поэтому сервисная команда не может решить, что к чему.

1
Я полностью согласен с вашим ответом (+1), но я просто не могу понять, почему sudo service --status-all 2>&1 | grep sshвыводится, [ - ] sshдаже когда я запускаю эту команду из SSH? Или почему sudo service --status-all 2>&1 | grep lightdmвыводит, [ ? ] lightdmкогда sudo service lightdm statusработает как брелок?
Раду Рэдяну

@ RaduRădeanu Чтобы догадаться, я думаю, что это /etc/init.dвопрос наследия . На моем серийно обновленном компьютере /etc/init.d/ssh status; echo $?показывает ненулевое значение (плохо, не работает) и initctl listне показывает SSH. На моей 14.04 коробки initctrl делает шоу SSH , но до serviceсих пор не может прочитать статус. Также помните, что initctrlработает для Upstart и serviceявляется частью sysvinit-utils. Это не самая ясная из картин, но я думаю, что это могло бы как-то объяснить некоторые причуды. Я уверен, что переход на systemd все прояснит D:
Oli

Я думал, что отрицательный код выхода также может быть возвращен, или это только для не-служебных сценариев?
saiarcot895
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.