我一直想知道是否可以让 systemd 在启动单元时开始跟踪日志文件,并将该数据发送到系统日志中。
为了便于讨论,假设该程序记录到纯文本文件,而不是标准输出。如果我必须举个例子,我的世界服务器就可以。
我知道systemd-cat
,但这只是一个第三方应用程序,logger
与单位系统无关。
答案1
您可以在服务单元文件中尝试此操作:
ExecStartPost=/bin/sh -c 'tail -f /path/to/log | systemd-cat'
它比推荐的记录到 STDOUT 的模式更脆弱,因为如果日志文件被轮换,则tail
不一定会再次连接文件描述符,直到服务重新启动。
据我所知,没有内置函数可以跟踪日志文件。这是其他日志系统可以rsyslog
做的事情。