Service --status-all -> co zawiera kolumna z [? ], [+] i [-] oznaczają?

13

Jeśli uruchomię polecenie „service --status-all”, każda usługa (działająca?) Jest wyświetlana w formacie kolumny. Pierwsza kolumna ma albo [? ], [+] lub [-] przed nazwą usługi. Co przedstawia ta kolumna? Co znaczy?, + I -?

Przepraszam, jeśli to proste pytanie. Szukałem w Internecie przez około 30 minut, zanim przyszedłem tutaj i zapytałem.

Znalazłem nawet: Co oznaczają symbole w służbie - status - wszystkie? gdzie „poprawna” odpowiedź stanowi „Rysuje [+] lub [-] w zależności od tego, czy status wyjścia był odpowiednio zerowy czy niezerowy.”.

Myślę, że moje nowe pytanie brzmi: co oznacza status zero i niezerowy (!?!?!)?

00fruX
źródło

Odpowiedzi:

12

To tylko kody wyjścia. Po zakończeniu działania może zwrócić 8-bitową liczbę całkowitą (0–255), aby wskazać sposób wyjścia.

  • Zero (implikowane, jeśli nic nie zostanie zwrócone) oznacza, że ​​aplikacja dotarła do końca tego, co powinna zrobić, i zakończyła się naturalnie.
  • Kody niezerowe (1-255) mogą oznaczać, co chce aplikacja. Strona man ( man <command>) zwykle pokazuje, co oznaczają te kody.

Jeśli chodzi o pytanie, nie zastanawiaj się nad nim:

  • + oznacza, że ​​działa,
  • -oznacza, że ​​nie jest ( mógł się zawiesić - mógł się nigdy nie rozpocząć), oraz
  • ?oznacza, że ​​usługi nie mają statuspolecenia, więc nie ma możliwości, aby polecenie usługi mogło ustalić, co jest.
Oli
źródło
1
Całkowicie zgadzam się z twoją odpowiedzią (+1), ale po prostu nie rozumiem, dlaczego dane sudo service --status-all 2>&1 | grep sshwyjściowe [ - ] sshnawet po uruchomieniu tego polecenia z SSH? Lub dlaczego sudo service --status-all 2>&1 | grep lightdmwyjścia, [ ? ] lightdmgdy sudo service lightdm statusdziałają jak urok?
Radu Rădeanu
@ RaduRădeanu Zgaduję, że może to być /etc/init.dproblem ze starszymi wersjami . Na moim seryjnie zaktualizowanym komputerze /etc/init.d/ssh status; echo $?pokazuje niezerowe (złe, nie działa) i initctl listnie pokazuje SSH. Na moim 14.04 polu initctrl robi pokaz SSH, ale servicenadal nie można odczytać jego status. Pamiętaj też, że initctrldziała dla Upstart i servicejest częścią sysvinit-utils. Nie jest to najczystszy ze zdjęć, ale myślę, że to może w jakiś sposób wyjaśnić niektóre dziwactwa. Jestem pewien, że przejście na systemd wszystko wyczyści. D:
Oli
Myślałem, że można również zwrócić ujemny kod wyjścia, czy to dotyczy tylko skryptów innych niż serwisowe?
saiarcot895