从 18.04 LTS 升级到 20.04 LTS 后,rsyslog 停止将其 PID 写入/(var/)run/rsyslogd.pid
文件。
答案1
编辑/lib/systemd/system/rsyslog.service
并-iNONE
从行中删除选项ExecStart
。然后运行systemctl daemon-reload
,systemctl restart rsyslog
PID 文件应该会返回。
man rsyslogd(8) 说:
-i pid file
Specify an alternative pid file instead of the default one.
This option must be used if multiple instances of rsyslogd
should run on a single machine. To disable writing a pid file,
use the reserved name "NONE" (all upper case!), so "-iNONE".
== 编辑 ==
systemctl edit
正如@Ondrej Simek 在下面建议的那样,您可以使用并编写,而不是手动编辑服务文件
[Service]
ExecStart=
ExecStart=/usr/sbin/rsyslogd -n
保存并关闭编辑器后,更改应应用于服务,服务将重新启动并创建 PID 文件。这种方法的好处是,此更改应在rsyslog
升级后继续存在,因为它会创建新/etc/systemd/system/rsyslog.service.d/override.conf
文件,覆盖 中的所有内容/lib/systemd/system/rsyslog.service
。