Nagios 4:无法打开/etc/rc.d/init.d/functions

时间:2013-10-26 11:17:21

标签: startup nagios

我只是将我的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服务器上正常工作。

3 个答案:

答案 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 [桌面]的小补充:

    对于debianLike,
  • 'runuser'程序不存在,而是'su'而不是
  • 'service'程序不在/ sbin中,而在/ usr / sbin

然后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