5

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 サーバーで正常に動作します。

4

3 に答える 3

3

独自の 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 を忘れずに。

楽しむ。

于 2014-01-24T14:43:14.050 に答える
3

ubuntu 12.04 [デスクトップ] の追加:

  • 「runuser」プログラムは debianLike には存在しませんが、代わりに「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

また、「service nagios stop」呼び出しでのエラー メッセージを回避するために、停止シーケンス (94 行目あたり) で killproc に適用された「-d 10」オプションを削除しました。

$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

おそらく解決策を見つけたと思いますが、質問に答えるには: 考えられる解決策の 1 つは、パッケージ マネージャーから Nagios 3.x をインストールし、ソースからコンパイルして Nagios 4 に更新することです。新しい init スクリプトは台無しになっているようですが、古いスクリプトはまだ機能します。ソース (ドイツ語): http://www.monitoring-portal.org/wbb/index.php?page=Thread&threadID=29431&pageNo=2

于 2013-10-26T20:44:21.110 に答える