CentOSによるスクリプト管理サービスの詳細
サービス起動スクリプトの最初に2行を追加するには、次の手順に従います。
# chkconfig: 2345 88 12
# description: XXXXXXXXX XXXXXX
これにより、ツール:chkconfigを使用して、サービス起動スクリプトを管理できます。
使用ツール:chkconfigツールのメリット:このツールは使用されていません。1つのサービスを2、3、4、5レベルで実行し、他のレベルでは実行しません。多数のシンボル接続を手動で設定するには、次の手順に従います。
/etc/rc.d/rc1.d実行:[root@node2 rc1.d]# ln -sv K12nrped ../init.d/nrped
/etc/rc.d/rc2.d実行:[root@node2 rc2.d]# ln -sv S88nrped ../init.d/nrped
/etc/rc.d/rc3.d実行:[root@node2 rc3.d]# ln -sv S88nrped ../init.d/nrped
/etc/rc.d/rc4.d実行:[root@node2 rc4.d]# ln -sv S88nrped ../init.d/nrped
/etc/rc.d/rc5.d実行:[root@node2 rc5.d]# ln -sv S88nrped ../init.d/nrped
/etc/rc.d/rc6.d実行:[root@node2 rc6.d]# ln -sv K12nrped ../init.d/nrped
これらのシンボルリンクを追加した後。実行レベルが変更されると、このサービスはスクリプトrcの制御を与えます。-->rcスクリプトは、対応する実行レベルディレクトリ(/etc/rc.d/rc$runlevel.d)のシンボルに基づいて、S、Kが対応するサービスを停止、起動することを識別します。これにより、サービスが実行レベルで実行されるかどうかを設定できます。
ツール:chkconfigは、サービス実行スクリプトの#chkconfig行に基づいて、上記のシンボルリンクを自動的に設定します。
[root@node2 rc3.d]# chkconfig on
:#chkconfig:2345 88 12に基づいて、各実行レベルのシンボルリンクが作成されます。
2、ツールを使用するために:サービス管理サービススクリプトは少なくともstartとstopオプションを受信する必要がある。サービス起動スクリプトは、ユーザーが入力したオプションに基づいています。
stop------>サービスをクローズ
start------>サービスの開始
reload------>プログラムにプロファイルの再読み込みを伝え、プログラムの実行状態を変更する
restart------>サービスの再起動
3、Lock directory for RedHat / SuSERedHat管理サービスのメカニズムで、/var/lock/subsys/ディレクトリの下にロックファイルを作成します。
[root@node2 rc.d]# vim /etc/init.d/nrped
#!/bin/bash
# chkconfig: 2345 89 11
# description: NRPE DAENON
NRPE=/usr/local/nagios/bin/nrpe
OPTIONS="-c /etc/nagios/nrpe.cfg -d"
lockfile=/var/lock/subsys/nrped
prog=nrped
RETVAL=0
. /etc/rc.d/init.d/functions
start() {
echo -n $"Starting $prog: "
daemon $NRPE $OPTIONS
RETVAL=$?
echo
[ $RETVAL = 0 ] && touch ${lockfile}
return $RETVAL
}
stop() {
echo -n $"Stopping $prog: "
killproc -d -10 $NRPE
RETVAL=$?
echo
[ RETVAL = 0 ] && rm -f ${lockfile}
}
reload() {
echo -n $"Reloading $prog: "
killproc $NRPE -HUP
echo
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
reload)
reload
;;
status)
status $NRPE
;;
*)
echo "Usage: $0 start|stop|restart|reload|status"
;;
esac
exit 0