私は単にこのようなものをbashスクリプトの上部に貼り付けています。これはsystemdでも機能します。 (私は長い間使用していて、完全には理解していません。動作するだけなので、使用しています。)
exec 5> >(logger -t $0)
BASH_XTRACEFD="5"
PS4='$LINENO: '
set -x
Systemdを使用する場合でも、上記のコマンドはjournalctlで期待される出力を提供します。ただし、代わりにこのようなものを使用する必要があるようです。
systemd-cat -t $0
Systemdで現在のロギングコマンドをどのように変更する必要がありますか?
(私は、数行を貼り付けてジャーナルに出力を取得できる、同じ種類の単純な解決策を探しています。)
私はlogger
に固執します。これは、あなたが発見したsystemdのジャーナルを含む、標準に準拠したロギングシステムで動作します。 systemd-cat
を直接使用すると、スクリプトはシステム固有になり、何も追加されません。実際、modern logger
ははるかに柔軟性があり、 systemd-cat
自体よりもsystemd固有の機能をより適切にサポートします。