web-dev-qa-db-ja.com

systemdサービスからの出力を監視する方法は?

CentOSのsystemdサービスからの出力を、このサービスをコンソールから開始したかのように監視したい。はい、journalctlで出力を確認できますが、自動的に一番下までスクロールしません。それでは、サービスからのライブ出力をどのように見ることができますか?

8
stiv
journalctl -f -u mystuff.service

それはマニュアルにあります:

-f, --follow
最新のジャーナルエントリのみを表示し、ジャーナルに追加された新しいエントリを継続的に印刷します。

そして

-u, --unit=UNIT|PATTERN
指定したsystemdユニットUNIT(サービスユニットなど)、またはPATTERNで一致したユニットのメッセージを表示します。パターンが指定されている場合、ジャーナルで見つかったユニット名のリストが指定されたパターンと比較され、一致するものすべてが使用されます。ユニット名ごとに、ユニットからのメッセージ( "_SYSTEMD_UNIT = UNIT")との一致が追加され、systemdからのメッセージと指定されたユニットのコアダンプに関するメッセージとの一致が追加されます。

このパラメーターは複数回指定できます。

17
don_crissti

@don_crisstiの答えに追加するには、そのサービスの出力だけを表示し、他には何も表示したくない場合は、これを使用できます。

journalctl -f -o cat _SYSTEMD_UNIT=mystuff.service

-o catは、追加情報(タイムスタンプなど)を省略した出力形式を選択します。_SYSTEMD_UNITの代わりに-uを使用すると、サービスへのメッセージ関連を意味します、しかしそれによって印刷されない(たとえば、開始/停止メッセージまたはコアダンプ)は選択されません。

ジャーナルはStandardOutput=journalを介してサービスから受け取ったものを改行とNUL文字でログレコードに分割するため、サービスが終了改行またはNUL文字なしで出力を印刷する場合、しばらくの間、この出力はまだ十分にライブではありません。

5