Jak zmienić szczegółowość polecenia serwisowego?


13

Używam Kali 2 Linux. Używam polecenia systemctllub, serviceaby uruchomić usługę taką jak Apache. W poprzedniej wersji Kali polecenie faktycznie wyświetla komunikat „OK” podczas uruchamiania usługi; ale w tej wersji po prostu wraca do wiersza poleceń, nie mówiąc nic.

Czy istnieje sposób, aby zmienić gadatliwość lub sprawić, by zachowywała się tak jak poprzednia wersja?


Zazwyczaj, gdy nie ma wiadomości, która oznacza sukces.
Svetlin Tonchev

Odpowiedzi:


1

servicePoleceń (zazwyczaj /usr/sbin/) jest w dzisiejszych czasach zazwyczaj tylko bashskrypt powłoki, który powołuje się na systemctlkomendę. Powinieneś być w stanie łatwo go zmodyfikować, aby uzyskać pożądany wynik.


0

journaldJest scentralizowanym demonem, który zbiera dane ze wszystkich dostępnych źródeł i przechowuje je w formacie binarnym w celu łatwej i dynamicznej manipulacji. W odpowiedzi na twoje pytanie powiem, że zwykle, gdy nie ma danych wyjściowych, oznacza to, że jest „OK”, a jeśli chcesz mieć pewność, użyj journalctldo sprawdzenia dzienników.


Wiem, ale podoba mi się wrażenie, że przyzwyczajenie się do tego jest dobre i potrzebuję go wyskoczyć
RL.AdmiralX

Bez względu na to, czy usługa się uruchomi, czy nie, nie ma danych wyjściowych. Kusi mnie, aby dodać alias: usługa 1 USD za start; usługa 1 USD za status
Lenne

-1

Możesz dodać an echo $?do polecenia, aby wyświetlić stan 1 lub 0.

&&Ma wpływ tylko uruchomione drugie polecenie, jeśli poprzedni jest udany.

systemctl start mysqld.service && echo $? 

To pokaże status:

jeśli się nie powiedzie, wydrukuje komunikat, dlaczego się nie udało

jeśli się powiedzie, zobaczysz tylko 0

Możesz w swoim umyśle dodać k 0 = 0k

Jest to tanie obejście, ale da ci dobry zwrot po wywołaniach systemctl.


2
&& echo $?wydaje się to czymś szczególnym; wydrukuje się 0lub nic. Równie dobrze możesz powiedzieć && echo OKlub && echo Success.
G-Man mówi „Reinstate Monica”

1
nie, to nie jest jak echo ok. Odzwierciedla rzeczywisty wynik ostatniego polecenia. Jeśli jest to 0, to się udało. Jeśli się nie powiedzie, będzie to 1.
Mark Stewart

1
Ale ty mówisz && echo $?! Jeśli (pierwsze) polecenie nie powiedzie się, powłoka nie uruchomi drugiego polecenia (następnego po  &&), więc nic nie wydrukuje!
G-Man mówi „Reinstate Monica”

1
Nie, gdy się nie powiedzie, wydrukuje komunikat, który systemctl wysyła, gdy usługa się nie uruchamia. Po prostu spróbuj sam, to działa. Użyłem go. Na przykład (muszę użyć wywołań usługi, ponieważ RHEL wykonuje dane wyjściowe w przypadku niepowodzenia lub powodzenia). Gdy usługa się nie powiedzie, otrzymasz standardowe wyjście systemowectctl po awarii. Gdy usługa się uruchomi, otrzymasz 0. Byłaby to 1, którą uruchomiła druga instrukcja (można ją przetestować; zamiast &&) Usługa działa:
Mark Stewart

2
Nie powiedziałem, że to nie działa. Powiedziałem, że && echo $?działa dokładnie tak samo jak && echo 0- „ $?” sprawia, że ​​wygląda na to, że robisz coś bardziej wyrafinowanego niż ty - i tak długo, jak masz zamiar zrobić coś tak niewyszukanego, jak && echo 0równie dobrze możesz zrobić && echo OK, co da wynik, o który pyta pytanie. …………………………………… Czy to  echo 0dokładnie to samo co echo OK? Nie, oczywiście nie; 0 to jeden znak, który jest cyfrą, natomiast OK dwa znaki, które są literami (alfabetycznymi). Duh. … (Ciąg dalszy)
G-Man mówi „Reinstate Monica”
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.