systemd ユニットログを追跡するにはどうすればいいですか?

systemd ユニットログを追跡するにはどうすればいいですか?

実行中の 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

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

関連情報