私のスクリプトがランレベル0で実行されないのはなぜですか?

私のスクリプトがランレベル0で実行されないのはなぜですか?

次のLSBヘッダーでスクリプトを作成しました。

#! /bin/sh
### BEGIN INIT INFO
# Provides:          updateservice
# Required-Start:    $local_fs $time $network $named $syslog
# Required-Stop:     $local_fs $time $network $named $syslog
# Default-Start:
# Default-Stop:      0
# Short-Description: Update Service
# Description:       This script is meant to update and upgrade
#                    the system. It uses apt-get.
### END INIT INFO

入れて/etc/init.dリンクを作って、update-rc.d欲しいリンクを手に入れよう

 lrwxrwxrwx 1 root root 19 Nov 29 13:08 /etc/rc0.d/K01update.sh -> ../init.d/update.sh

....しかし:終了時にスクリプトは実行されません。なぜ?

手動で実行すると、/etc/init.d/update.sh stop必要に応じて正確に実行されますが、シャットダウン時には実行されません。そして楽しい事実のように、同じスクリプトと設定はRaspberry Piでも期待通りに機能します。

あなたは専門家です...あなたは知っている人がいますか?

PS:uname -a出力:

Linux d3bi4n 3.16.0-4-amd64 #1 SMP Debian 3.16.7-2 (2014-11-06) x86_64 GNU/Linux

私の初期化システムはSystemdです。

答え1

出力から:

lrwxrwxrwx 1 root root 19 Nov 29 13:08 /etc/rc0.d/K01update.sh -> ../init.d/update.sh

Kinは、K01update.shLinuxが実行レベル0に入ると、プロセスがステップ01で終了することを意味します!私はDebianを持っていませんが、どちらもLinuxであるため、Redhat Linuxではこれらの優先chkconfig順位レベルでサービスを開始または停止するかどうかを示すために、以下のコメント行を追加する必要があります。

# chkconfig: 2345 70 80

最初の数字は実行レベル(2345)で、2番目の数字は開始優先順位(70)を表し、最後の数字は停止優先順位(80)を表します!

update-rc.dところで、必ず必要なのか分からない!

関連情報