同じ質問がありましたが、別の答えも見つかりました。著者リストこれを達成するための4つのオプションを、私は最高の最初のもののように:
initclt emit myservice-started
依存サービスの起動の完了を通知するために使用します。リンクされた回答では、依存関係サービスのinit.d
スクリプトの最後にこの行を追加することをお勧めしますが、私は別の方法を好みます。セクションのみを含むinid.d
という名前の新しいスクリプトを作成したいと思います。ファイルのヘッダーで適切なコメントスタイルを使用して、開始するかどうかに依存することを宣言します。このセクションでは、開始することについてupstartを説明します。でインストールできます。myservice-started
start
$myservice
start
myservice
update-rc.d
このソリューションは煩わしくないので気に入っています。更新によって既存のinit.d
スクリプトが変更されても、これらの追加のスクリプトには影響しません。ただし、起動スクリプトの変更が必要であることを忘れないでください。
次のようになります。
#!/bin/sh -e
### BEGIN INIT INFO
# Provides: myservice-started
# Required-Start: $myservice
# Default-Start: 2 3 4 5
# Short-Description: send upstart signal after starting myservice
# Description: myservice needs to run before some upstart services can run
### END INIT INFO
. /lib/lsb/init-functions
case "$1" in
start)
log_daemon_msg "Signaling myservice started..." "myservice-started"
initctl emit myservice-started --no-wait
;;
*)
log_action_msg "Usage: /etc/init.d/myservice-started start"
exit 1
;;
esac
exit 0
myserviceを待機するupstartスクリプトはmyservice-started
イベントをリッスンできます:
start on myservice-started