5

我只是将我的 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

/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 服务器上运行良好。

4

3 回答 3

3

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

玩得开心。

于 2014-01-24T14:43:14.050 回答
3

ubuntu 12.04 [桌面] 的小添加:

  • debianLike 不存在“runuser”程序,而是“su”,
  • “服务”程序不在 /sbin 中,而是在 /usr/sbin 中

然后是 Nicolargo 的模组 + 我的一些:

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.

'喜悦!

于 2014-03-01T00:16:52.137 回答
1

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

于 2013-10-26T20:44:21.110 回答