
編輯1:syslog-ng啟動命令:
/usr/sbin/syslog-ng -u syslog -g syslog -R /tmp/syslog-ng.persist -F
使用的命令:
syslog-ng-ctl verbose --set=on
和syslog-ng-ctl verbose
我嘗試syslog-ng
在詳細模式下運行,但出現錯誤:
連接控制套接字時出錯,socket='/var/lib/syslog-ng/syslog-ng.ctl', error='沒有這樣的檔案或目錄'
root@CHB:~# syslog-ng-ctl verbose
Error connecting control socket, socket='/var/lib/syslog-ng/syslog-ng.ctl', error='No such file or directory'
因此創建了 ctl 檔案並根據需要更改了權限,但隨後再次出現錯誤:
連線控制套接字時出錯,socket='/var/lib/syslog-ng/syslog-ng.ctl', error='連線被拒絕'
root@CHB:~# touch /var/lib/syslog-ng/syslog-ng.ctl
root@CHB:~# ls -l /var/lib/syslog-ng/syslog-ng.ctl
-rw-r--r-- 1 root root 0 Oct 21 19:11 /var/lib/syslog-ng/syslog-ng.ctl
root@CHB:~# chown syslog /var/lib/syslog-ng/syslog-ng.ctl
root@CHB:~# ls -l /var/lib/syslog-ng/syslog-ng.ctl
-rw-r--r-- 1 syslog root 0 Oct 21 19:11 /var/lib/syslog-ng/syslog-ng.ctl
root@CHB:~# chgrp syslog /var/lib/syslog-ng/syslog-ng.ctl
root@CHB:~# ls -l /var/lib/syslog-ng/syslog-ng.ctl
-rw-r--r-- 1 syslog syslog 0 Oct 21 19:11 /var/lib/syslog-ng/syslog-ng.ctl
root@CHB:~# chmod +x /var/lib/syslog-ng/syslog-ng.ctl
root@CHB:~# ls -l /var/lib/syslog-ng/syslog-ng.ctl
-rwxr-xr-x 1 syslog syslog 0 Oct 21 19:11 /var/lib/syslog-ng/syslog-ng.ctl
root@CHB:~# syslog-ng-ctl verbose
Error connecting control socket, socket='/var/lib/syslog-ng/syslog-ng.ctl', error='Connection refused'
root@CHB:~# syslog-ng-ctl verbose --set=on
Error connecting control socket, socket='/var/lib/syslog-ng/syslog-ng.ctl', error='Connection refused'
我的系統資訊(如果有幫助的話)
root@CHB:~# cat /etc/issue
Poky (Yocto Project Reference Distro) 2.0 \n \l
root@CHB:~# uname -a
Linux CHB 3.2.48 #1 SMP Tue Mar 14 15:52:38 CET 2017 i686 GNU/Linux
如果需要任何其他信息,請告訴我。
感謝解決問題的任何幫助。
編輯2:
設定檔
#syslog settings
CS_SYSLOG_DAEMON="/usr/sbin/syslog-ng"
CS_SYSLOG_NAME="syslog-ng"
# user/group
CS_SYSLOG_USER="syslog"
CS_SYSLOG_GROUP="syslog"
# syslog port/interface to be used in syslog-ng.conf in case of remote logging
CS_SYSLOG_PORT="2020"
CS_SYSLOG_INTERFACE="eth1"
# syslog specific parameters: user, group, persist file in /tmp, in the foreground (start-stop-daemon will take care of the spawn)
CS_SYSLOG_ARGS="-u $CS_SYSLOG_USER -g $CS_SYSLOG_GROUP -R /tmp/syslog-ng.persist -F"
CS_SYSLOG_EXTRA_ARGS=
在init.d腳本啟動指令中,上述變數是先前取得的
startdaemon $CS_SYSLOG_DAEMON $CS_SYSLOG_NAME $CS_SYSLOG_ARGS $CS_SYSLOG_EXTRA_ARGS
;;
答案1
詳細輸出將放入 /var/log/messages 中。
檢查套接字所在目錄的權限。通常,套接字檔案是在服務啟動期間建立的,有時是由服務本身建立的。所以檢查哪個用戶想要啟動該服務。然後修復創建套接字檔案的目錄的權限。
如果 syslog 是啟動服務的用戶,則 /var/lib/syslog-ng 應由用戶 syslog 擁有。由於我不確定您的系統詳細情況如何,我建議僅出於調試原因,也授予群組寫入存取權限。
rm /var/lib/syslog-ng/syslog-ng.ctl
chmod 770 /var/lib/syslog-ng
chown syslog:syslog /var/lib/syslog-ng
為了確保不存在可能破壞某些內容的奇怪文件,請執行 syslog-ng.ctl 檔案的 rm 操作。變更擁有者和群組的讀取、寫入、執行權限。我想其他人在你的系統上沒有什麼可做的。將此目錄的擁有者和群組變更為 syslog。