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 所有。由于我不确定您的系统的详细外观如何,我建议仅出于调试原因,也授予组写访问权限。
为了确保没有可能破坏某些东西的奇怪文件,请执行 syslog-ng.ctl 文件的 rm 。更改所有者和组的读取、写入、执行权限。我猜其他人在您的系统上与此无关。将此目录的所有者和组更改为 syslog。