Systemd-Journald

如何在 systemd+rsyslog 主機中恢復 /dev/log

  • April 7, 2022

在 RHEL7 上,systemd-journald接管了曾經由rsyslogd. 無論是由於錯誤或這兩個守護程序之間的衝突,有時/dev/log都會失去。因此,依賴於syslog(3)呼叫的程序將無法正常執行,例如,logger. 如何恢復/dev/log套接字?

問和回答我自己的問題,因為Google在這個問題上不是很有幫助。

通常,使用rsyslogdimuxsock模組將/dev/log自行創建套接字,在創建之前取消連結先前的條目。停止時rsyslogd(可能是因為配置錯誤而重新啟動失敗),rsyslogd 刪除 /dev/log.

但是,提供的 rsyslogRHEL7預計將與 一起使用systemd,並且該imuxsock模組將實際打開和刪除/run/systemd/journal/syslog套接字。同時,/dev/log設備由systemd-journald.socket觸發的系統服務文件創建journald

顯然,無論是否$imjournal使用模組,以下工作。

總之,如果/dev/log消失:

  1. 重啟 systemd-journald.socket:
systemctl restart systemd-journald.socket
  1. 然後重新啟動 rsyslogd
systemctl start rsyslogd

更新:如果已經執行,我相信systemctl restart rsyslogd可能會重新刪除套接字。rsyslogd

引用自:https://unix.stackexchange.com/questions/317064