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ż journalctl
nie 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.
systemctl status myservice
systemctl start myservice&; systemctl status myservice
Ale jak mogę przestać widzieć komunikaty po zakończeniu uruchamiania?systemctl status myservice
nie śledzi nowych wiadomości. Myślę, że tak jest lepiejjournalctl -f
Odpowiedzi:
To zależy, czego chcesz. Jeśli chcesz tylko sprawdzić
active (running)
status,systemctl status myservice
wystarczy.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ć:
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 -f
i chcesz ją po pewnym czasie zatrzymać, możesz użyćtimeout
polecenia. Zobacz przykład:W tym przykładzie proces Journalctl zostanie zabity po 20 sekundach. Jeśli przekierujesz dane wyjściowe, możesz je następnie przeanalizować.
źródło