実行中の systemd ユニットがあり、そのログを追跡したいと考えています。
次を使用してユニットのログを表示できることはわかっています:
journalctl -u my_unit.service
しかし、それは現在のログのみを印刷し、その後のログは印刷しません。
systemd
以下の方法でもログを追跡できることがわかっています。
journalctl -f
しかし、既知のログをすべてたどることで出力がスパム状態になるため、興味のあるものを検索する必要があります。
一時的な解決策としては、ログをパイプして grep で出力をフィルタリングする方法があるようですが、これはあまり体系的な解決策ではありません。
journalctl -f | grep "what i'm interested in"
特定のユニットのログを追跡するコマンドはありませんか?
試してみたがうまくいかなかったこと:
journalctl -uf my_unit.service
答え1
引数を間違った順序で使用していることがわかりました。実際には、次のコマンドを使用して、単一のユニットのログを追跡できます。
journalctl -fu my_unit.service
その他の作業バリエーション:
journalctl -f -u my_unit.service
journalctl -u my_unit.service -f
からjournalctl
マニュアル:
-u
、--unit=UNIT|PATTERN
指定された systemd ユニットのメッセージを表示します
UNIT
(サービスユニットなど)、またはPATTERN
パターンが指定されている場合は、ジャーナルで見つかったユニット名のリストが指定されたパターンと比較され、一致するものがすべて使用されます。ユニット名ごとに、ユニットからのメッセージ (" ") の一致が追加され、さらに systemd からのメッセージと指定されたユニットのコアダンプに関するメッセージの一致が追加されます。_SYSTEMD_UNIT=UNIT
このパラメータは複数回指定できます。
-f, --follow
最新のジャーナル エントリのみを表示し、ジャーナルに追加される新しいエントリを継続的に印刷します。