让 bash 脚本将输出发送到 systemd 日志的简单但正确的方法是什么?

让 bash 脚本将输出发送到 systemd 日志的简单但正确的方法是什么?

我只是把这样的东西放在我的 bash 脚本的顶部。这仍然适用于 systemd。 (我用了很久,也没有完全理解,只是管用,所以就用了。)

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

即使使用 systemd,上述命令也会在 Journalctl 中给出预期的输出。然而,似乎也许我应该使用这样的东西来代替。

systemd-cat -t $0

我应该如何更改 systemd 下当前的日志记录命令?

(我正在寻找同样简单的解决方案,我可以在其中粘贴几行并在日志中获得一些输出。)

答案1

我会坚持logger:它适用于任何符合标准的日志系统,包括您发现的 systemd 日志。直接使用systemd-cat只会使您的脚本特定于 systemd,而无需添加任何内容;事实上,现代logger比 systemd 更灵活,并且为特定于 systemd 的功能提供更好的支持systemd-cat本身。

相关内容