web-dev-qa-db-ja.com

systemdユニットログを追跡する方法は?

Systemdユニットを実行していますが、そのログを追跡したいと思います。

以下を使用してユニットのログを表示できることを知っています。

journalctl -u my_unit.service

ただし、現在のログはフォローせずに印刷するだけです。

次を使用してsystemdログを追跡することもできます。

journalctl -f

しかし、それはすべての既知のログをたどることによって出力をスパムするので、私は興味のあるものを検索する必要があります。

一時的な解決策は、ログを追跡して出力をgrepフィルタリングすることのようですが、それはあまり体系的な解決策ではありません。

journalctl -f | grep "what i'm interested in"

特定のユニットのログを追跡するコマンドはありませんか?

私が試したがうまくいかなかったこと:

journalctl -uf my_unit.service
3
jirislav

引数を間違った順序で使用していることがわかりました。ログは、実際には次を使用して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_UNIT=UNIT ")、systemdからのメッセージおよび指定されたユニットのコアダンプに関するメッセージの追加の一致とともに。

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

-f, --follow

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