終了して再起動するたびにスクリプトを実行しようとしていますが、スクリプトは実行されません。
- baseRhel64スクリプトを生成し、次の場所に保存しました。
/etc/rc.d/init.d
- 私がやった
chkconfig --add baseRhel64
スクリプトに含めました。
#chkconfig --list # chkconfig: 06 10 10
- S10スクリプトが
/etc/rc0.d/S10baseRhel64
次から作成されたことを確認しました。/etc/rc6.d/S10baseRhel64
以下は私のスクリプトです。
#!/bin/sh
#chkconfig --list
# chkconfig: 06 10 10
start(){
echo "`basename $0` start"
touch /root/installscripts/test1
}
stop(){
echo "`basename $0` stop"
touch /root/installscripts/test2
touch /root/installscripts/"`basename $0`"
}
case "$1" in
start) start;;
stop) stop;;
*)
echo $"Usage: $0 {start|stop}"
RETCAL=1
esac
exit 0
答え1
RH EL 6でカスタム初期化スクリプト(「service_name」など)を設定するときは、起動フェーズでロックファイル/var/lock/subsys/service_nameを作成する必要があります。それ以外の場合、スクリプトは実装されません。システムをシャットダウンします(init 0またはinit 6)。また、ロックされたファイルの停止フェーズで「rm -f」を設定する必要があります。
答え2
/etc/rc0.d
合計金額を確認すると、/etc/rc6.d
サービスを受ける前にシステムが最初にkillall
(優先順位00)実行され、次にhalt
(優先順位01)実行されることがわかります。
サービスは次回実行するようにスケジュールされていますが、コンピュータが動作を停止しました。
lrwxrwxrwx 1 root root 17 Sep 28 2012 S00killall -> ../init.d/killall
lrwxrwxrwx 1 root root 14 Sep 28 2012 S01halt -> ../init.d/halt
lrwxrwxrwx 1 root root 14 Jul 8 21:16 S10test -> ../init.d/test
私があなたの場合は、一般的に使用しているランレベルでスクリプトを有効にしてから345
起動を停止に置き換えます。現在ランレベルで実行されているすべてのchkconfig:edデーモンは停止時に呼び出され、argでstop
再起動されます。今後それほど価値のあるサービスを受けました。スタート。
スクリプトを最後に実行するには、すべてのエントリを終了し、システムを停止する前に最も高い値を確認してください(最小なので、K92iptables
停止優先順位> 92)。
まず、次の行を読み取るchkconfig --del baseRhel64
ようにスクリプトを変更します。chkconfig
# chkconfig: 345 10 93
その後、スクリプトは次のように起動および停止関数の名前を変更します。
#!/bin/sh
#chkconfig --list
# chkconfig: 345 10 93
stop(){
echo "`basename $0` stop"
touch /root/installscripts/test1
}
start(){
echo "`basename $0` start"
touch /root/installscripts/test2
touch /root/installscripts/"`basename $0`"
}
case "$1" in
start) start;;
stop) stop;;
*);;
echo $"Usage: $0 {start|stop}"
RETCAL=1
esac
exit 0
答え3
私はあなたのための良い解決策を持っています。 a) 次のスクリプト
#!/bin/sh
#
# localshutdown
#
# chkconfig: 06 01 25
# description: localshutdown script
#
### BEGIN INIT INFO
# Provides:
# Required-Start:
# Required-Stop:
# Should-Start:
# Should-Stop:
# Default-Start: 0 6
# Default-Stop:
# Short-Description:
# Description:
### END INIT INFO
# Source function library.
start() {
echo "Your commands here"
touch /root/funziona #use it for a test
}
stop() {
echo "nothing" >/dev/null 2>&1
}
restart() {
stop
start
}
case "$1" in
start)
start
$1
;;
stop)
stop
$1
;;
restart)
restart
;;
*)
echo $"Usage: $0 {start|stop|restart}"
exit 2
esac
exit $?
それから
chkconfig --add /etc/init.d/yourscript.sh
それから
chkconfig --level 06 yourscript.sh on
chkconfig --level 12345 yourscript.sh off
テストを経て動作中