別のプロセスが終了するまで init スクリプトを遅延しますか?

別のプロセスが終了するまで init スクリプトを遅延しますか?

私は Debian Jessie を実行しています。起動時にユーザー入力を読み取りたいのですが、これは /etc/init.d/ のカスタム スクリプトとランレベル ディレクトリのシンボリック リンクによって実行されます。ここで、 kdm別の init スクリプトによって起動される を、カスタム スクリプトが終了した後にのみ起動するようにしたいと考えています。

私はこれを実現するために次のようなものを追加した。

while test -e /tmp/kdm-boot-lock
do
    echo "waiting for lock-file to be deleted by custom-script"
    sleep 1
done

/etc/init.d/kdm へ

しかし、私は外部ファイル(アップデートによって変更される可能性がある)を変更しないソリューションを好みます。

そこで質問です。kdmカスタム スクリプトが完了する前に、別の (変更されていない) init スクリプト () が開始されないようにするにはどうすればよいですか?

答え1

kdminitscripts を使用しているため、カスタム スクリプトが完了するまで延期する正しい方法はkdm、LSB ヘッダーでカスタム スクリプトへの依存関係を宣言することです。

# Required-Start: ... yourscript

initscriptでkdm、そして

# Provides: yourscript

カスタム initscript で。

アップグレード時に initscriptへの変更が失われないようにするには、その LSB ヘッダーを (同じ名前の)のオーバーライド ファイルkdmにコピーし、代わりにそれを編集します。insserv/etc/insserv/overrides

関連情報