Syslog
以詳細模式執行 syslog-ng
EDIT1: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時出錯,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 ;;
詳細輸出將被放入 /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。