systemd: podczas uruchamiania usługi patrz komunikaty

0

Korzystałem z SysV do mojej usługi.

Miałem:

service myservice restart

Teraz migruję do systemd i bardziej mi się podoba. Jedynym minusem jest to, że:

systemctl restart myservice

nie pokazuje standardowego wyniku mojej usługi, co wskazuje na postęp.

Wiem, że mogę użyć:

journalctl -u myservice -f -b

ale potrzebuję do tego innej konsoli i nie jest to wygodne rozwiązanie. Również journalctlnie zatrzymuje, gdy usługa zakończyła swój startup.

Jakieś pomysły na poprawę tego?

AKTUALIZACJA

Moim celem jest uzyskanie starego zachowania SysV: podczas uruchamiania usługi wyświetlaj dane wyjściowe konsoli do momentu zakończenia uruchamiania usługi. W ten sposób można wiedzieć, czy występują problemy z uruchamianiem lub czy znasz postęp. Czasami uruchomienie może być powolne.

david.perez
źródło
systemctl status myservice
Jaroslav Kucera
Więc proponujesz: systemctl start myservice&; systemctl status myserviceAle jak mogę przestać widzieć komunikaty po zakończeniu uruchamiania?
david.perez
Ponadto systemctl status myservicenie śledzi nowych wiadomości. Myślę, że tak jest lepiejjournalctl -f
david.perez

Odpowiedzi:

0

To zależy, czego chcesz. Jeśli chcesz tylko sprawdzić active (running)status, systemctl status myservicewystarczy. active (running)Stan zwykle oznacza, że usługa służy swój cel.

Jeśli potrzebujesz prostszego testu aktywności usługowej, możesz użyć:

# systemctl is-active myservice
active
# echo $?
0

Wadliwy stan może być: # systemctl is-active myservice nieaktywny # echo $? 3)

Możesz więc użyć go w teście.


Jeśli jednak naprawdę tego potrzebujesz journalctl -fi chcesz ją po pewnym czasie zatrzymać, możesz użyć timeoutpolecenia. Zobacz przykład:

timeout 20s journalctl -f

W tym przykładzie proces Journalctl zostanie zabity po 20 sekundach. Jeśli przekierujesz dane wyjściowe, możesz je następnie przeanalizować.

Jaroslav Kucera
źródło