我只是将我的Nagios服务器升级到Debian 7系统上的最新版本(4.0.1)。当我启动守护进程时,我有以下错误:
# /etc/init.d/nagios start
/etc/init.d/nagios: 20: .: Can't open /etc/rc.d/init.d/functions
我的Debian系统(以及我的Ubuntu 12.04工作站)上没有/etc/rc.d/init.d/functions。
我该怎么做才能解决这个问题?
=== 更新:
使用以下命令行破解启动脚本:
sudo apt-get install daemon
sudo sed -i 's/^\.\ \/etc\/rc.d\/init.d\/functions$/\.\ \/lib\/lsb\/init-functions/g' /etc/init.d/nagios
sudo sed -i 's/status\ /status_of_proc\ /g' /etc/init.d/nagios
sudo sed -i 's/daemon\ --user=\$user\ \$exec\ -ud\ \$config/daemon\ --user=\$user\ --\ \$exec\ -d\ \$config/g' /etc/init.d/nagios
sudo sed -i 's/\/var\/lock\/subsys\/\$prog/\/var\/lock\/\$prog/g' /etc/init.d/nagios
sudo service nagios start
在我的Debian服务器上正常工作。
答案 0 :(得分:2)
您只需编写自己的init脚本即可。将/etc/init.d/skeleton复制到/etc/init.d/nagios并填写该文件中的值:
DESC="Nagios"
NAME=nagios
DAEMON=/usr/local/nagios/bin/$NAME
DAEMON_ARGS="-d /usr/local/nagios/etc/nagios.cfg"
PIDFILE=/usr/local/nagios/var/$NAME.lock
我还评论了以下几行:
#[ -r /etc/default/$NAME ] && . /etc/default/$NAME
和
#start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON --test > /dev/null \
# || return 1
不要忘记chmod + x /etc/init.d/nagios。
玩得开心。
答案 1 :(得分:2)
ubuntu 12.04 [桌面]的小补充:
然后Nicolargo的mods +我的一些:
sudo apt-get install daemon
sudo sed -i 's/^\.\ \/etc\/rc.d\/init.d\/functions$/\.\ \/lib\/lsb\/init-functions/g' /etc/init.d/nagios
sudo sed -i 's/status\ /status_of_proc\ /g' /etc/init.d/nagios
sudo sed -i 's/daemon\ --user=\$user\ \$exec\ -ud\ \$config/daemon\ --user=\$user\ --\ \$exec\ -d\ \$config/g' /etc/init.d/nagios
sudo sed -i 's/\/var\/lock\/subsys\/\$prog/\/var\/lock\/\$prog/g' /etc/init.d/nagios
sudo sed -i 's/\/sbin\/service\ /\/usr\/sbin\/service\ /g' /etc/init.d/nagios
sudo sed -i 's/runuser/su/g' /etc/init.d/nagios
sudo service nagios start
我还删除了在停止序列(第94行附近)上对killproc应用的'-d 10'选项,以避免在'service nagios stop'调用时出现错误消息。
$Stopping nagios: Illegal option -d
/sbin/start-stop-daemon: signal value must be numeric or name of signal (KILL, INT, ...)
Try '/sbin/start-stop-daemon --help' for more information.
“快乐!
答案 2 :(得分:1)
您可能找到了解决方案,但要回答这个问题: 一种可能的解决方案是从软件包管理器安装Nagios 3.x,然后通过从源代码编译更新为4。新的init脚本似乎搞砸了,但旧的脚本仍然有效。 来源(德语):http://www.monitoring-portal.org/wbb/index.php?page=Thread&threadID=29431&pageNo=2