systemd
コンソールでサービスを開始したように、CentOSでサービスの出力を観察したいと思います。はい、出力は表示できますが、journalctl
自動的に下にスクロールしません。それでは、サービスのリアルタイム出力をどのように表示できますか?
答え1
journalctl -f -u mystuff.service
このマニュアルには次のように記載されています。
-f, --follow
最新のジャーナル項目のみを表示し、ジャーナルに追加された新しい項目を印刷し続けます。
そして
-u, --unit=UNIT|PATTERN
システム単位UNIT(サービス単位など)またはPATTERNに一致するすべての単位を指定するメッセージを表示します。パターンを指定すると、ログ内のデバイス名のリストが指定されたパターンと比較され、一致するものが使用されます。各ユニット名には、そのユニットのメッセージの一致 ("_SYSTEMD_UNIT=UNIT") が追加されるだけでなく、systemd のメッセージに対する追加の一致と指定されたユニットのコアダンプに対するメッセージも追加されます。このパラメーターは複数回指定できます。
答え2
@don_crisstiの回答に追加するには、サービスの出力のみを表示したい場合は、次のコマンドを使用できます。
journalctl -f -o cat _SYSTEMD_UNIT=mystuff.service
-o cat
追加情報(タイムスタンプなど)を省略し、_SYSTEMD_UNIT
代わりに-u
平均メッセージを使用する出力形式を選択します。関連サービスに送信されたがサービスから印刷されなかった情報(開始/停止メッセージ、コアダンプなど)は選択されません。
ログはサービスから受信したすべてのエントリで改行とStandardOutput=journal
文字のログに分割されているため、NUL
サービスがNUL
しばらく終了した改行や文字なしで出力を印刷しても、この出力はまだアクティブになりません。