web-dev-qa-db-ja.com

bashスクリプトにsystemdジャーナルに出力を送信させる簡単ですが正しい方法は?

私は単にこのようなものをbashスクリプトの上部に貼り付けています。これはsystemdでも機能します。 (私は長い間使用していて、完全には理解していません。動作するだけなので、使用しています。)

exec 5> >(logger -t $0)
BASH_XTRACEFD="5"
PS4='$LINENO: '
set -x

Systemdを使用する場合でも、上記のコマンドはjournalctlで期待される出力を提供します。ただし、代わりにこのようなものを使用する必要があるようです。

systemd-cat -t $0

Systemdで現在のロギングコマンドをどのように変更する必要がありますか?

(私は、数行を貼り付けてジャーナルに出力を取得できる、同じ種類の単純な解決策を探しています。)

4
MountainX

私はloggerに固執します。これは、あなたが発見したsystemdのジャーナルを含む、標準に準拠したロギングシステムで動作します。 systemd-catを直接使用すると、スクリプトはシステム固有になり、何も追加されません。実際、modern logger ははるかに柔軟性があり、 systemd-cat 自体よりもsystemd固有の機能をより適切にサポートします。

4
Stephen Kitt