在 Ubuntu 14.04 上安装 nsca 包后,我无法启动服务,因为出现此错误(从 syslog 中检索到):
nagios nsca[621]: Cannot write to pidfile '/var/run/nsca.pid' - check your privileges.
答案1
从系统角度来看,这不是一个优雅的解决方案。但它是一种简单、安全、快速的方法。它使用 upstart 配置,而不是“弃用”的 init.d 脚本。
从 Ubuntu 14.04 开始,您必须覆盖 nsca 守护进程的默认启动设置。这是因为脚本/etc/init.d/nsca
无法在 中创建 pid 文件/run
。从 14.04 版本开始,此目录仅可由 root 写入。因此,我们可以创建一个单独的 init 配置文件来启动 nsca 服务器。
创建一个 init 启动脚本,在/etc/init/nsca.conf
:
#!upstart
description "NSCA Nagios Server"
env DAEMON=/usr/sbin/nsca
env USER=nagios
env PIDFILE=/var/run/nsca.pid
env CONF=/etc/nsca.cfg
start on runlevel [2345]
stop on shutdown
respawn
expect fork
# log by default - syslog
exec start-stop-daemon --start --exec $DAEMON --make-pidfile --pidfile $PIDFILE --chuid $USER -- -c $CONF
删除启动链接:
update-rc.d -f nsca remove
删除旧的启动脚本。
rm /etc/init.d/nsca
创建用于自动完成功能的符号链接:
ln -s /lib/init/upstart-job /etc/init.d/nsca
重新加载初始化:
sudo initctl reload-configuration
答案2
我不得不删除
--make-pidfile
请参阅 Vladimir 的回答,以便正常运行,因为 nsca 服务器本身已经创建了一个 pid 文件。还要确保在
/etc/nsca.cfg
启用 nagios 服务器的日志记录非常有帮助。我使用了此 指导以启用它。