CentOSのsystemd
サービスからの出力を、このサービスをコンソールから開始したかのように監視したい。はい、journalctl
で出力を確認できますが、自動的に一番下までスクロールしません。それでは、サービスからのライブ出力をどのように見ることができますか?
journalctl -f -u mystuff.service
それはマニュアルにあります:
-f, --follow
最新のジャーナルエントリのみを表示し、ジャーナルに追加された新しいエントリを継続的に印刷します。
そして
-u, --unit=UNIT|PATTERN
指定したsystemdユニットUNIT(サービスユニットなど)、またはPATTERNで一致したユニットのメッセージを表示します。パターンが指定されている場合、ジャーナルで見つかったユニット名のリストが指定されたパターンと比較され、一致するものすべてが使用されます。ユニット名ごとに、ユニットからのメッセージ( "_SYSTEMD_UNIT = UNIT")との一致が追加され、systemdからのメッセージと指定されたユニットのコアダンプに関するメッセージとの一致が追加されます。このパラメーターは複数回指定できます。
@don_crisstiの答えに追加するには、そのサービスの出力だけを表示し、他には何も表示したくない場合は、これを使用できます。
journalctl -f -o cat _SYSTEMD_UNIT=mystuff.service
-o cat
は、追加情報(タイムスタンプなど)を省略した出力形式を選択します。_SYSTEMD_UNIT
の代わりに-u
を使用すると、サービスへのメッセージ関連を意味します、しかしそれによって印刷されない(たとえば、開始/停止メッセージまたはコアダンプ)は選択されません。
ジャーナルはStandardOutput=journal
を介してサービスから受け取ったものを改行とNUL
文字でログレコードに分割するため、サービスが終了改行またはNUL
文字なしで出力を印刷する場合、しばらくの間、この出力はまだ十分にライブではありません。