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



我只是在我的 Debian 7 系统上将我的 Nagios 服务器升级到最新版本 (4.0.1)。当我启动守护程序时,我遇到以下错误:

# /etc/init.d/nagios start
/etc/init.d/nagios: 20: .: Can't open /etc/rc.d/init.d/functions
/

etc/rc.d/init.d/functions 在我的 Debian 系统上不存在(在我的 Ubuntu 12.04 工作站上)。

我能做些什么来解决这个问题?

===更新:

只需使用以下命令行破解启动脚本:

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 服务器上工作正常。

您可以简单地编写自己的初始化脚本。将/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。

玩得愉快。

Ubuntu 12.04 [桌面] 的小补充:

  • "runuser"程序在debianLike中不存在,而是"su",
  • "服务"程序不在/sbin 中,而是位于/usr/sbin 中

然后尼古拉戈的模组+我的一些:

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

我还删除了停止序列中应用于 killproc 的"-d 10"选项(第 94 行左右),以避免在"服务 nagios 停止"调用时出现错误消息。

$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.

'喜悦!

您可能已经找到了解决方案,但要回答这个问题:一种可能的解决方案是从包管理器安装 Nagios 3.x,然后通过从源代码编译它来更新到 4。新的初始化脚本似乎搞砸了,但旧的脚本仍然可以工作。来源(德语): http://www.monitoring-portal.org/wbb/index.php?page=Thread&threadID=29431&pageNo=2

最新更新