Systemd-Journald如何在 systemd+rsyslog 主機中恢復
如何在 systemd+rsyslog 主機中恢復 /dev/log
?
在 RHEL7 上,
systemd-journald
接管了曾經由rsyslogd
. 無論是由於錯誤或這兩個守護程序之間的衝突,有時/dev/log
都會失去。因此,依賴於syslog(3)
呼叫的程序將無法正常執行,例如,logger
. 如何恢復/dev/log
套接字?
問和回答我自己的問題,因為Google在這個問題上不是很有幫助。
通常,使用
rsyslogd
,imuxsock
模組將/dev/log
自行創建套接字,在創建之前取消連結先前的條目。停止時rsyslogd
(可能是因為配置錯誤而重新啟動失敗),rsyslogd 刪除/dev/log
.但是,提供的 rsyslog
RHEL7
預計將與 一起使用systemd
,並且該imuxsock
模組將實際打開和刪除/run/systemd/journal/syslog
套接字。同時,/dev/log
設備由systemd-journald.socket
觸發的系統服務文件創建journald
。顯然,無論是否
$imjournal
使用模組,以下工作。總之,如果
/dev/log
消失:
- 重啟 systemd-journald.socket:
systemctl restart systemd-journald.socket
- 然後重新啟動 rsyslogd
systemctl start rsyslogd
更新:如果已經執行,我相信
systemctl restart rsyslogd
可能會重新刪除套接字。rsyslogd