私はUpstartスクリプト(バージョン0.6.5)を維持しており、pre-start script
には、前提条件が満たされない場合にサービスを終了するテストがあります。
pre-start script
if [ ! -f $REQUIRED_FILE ]; then
echo "$REQUIRED_FILE does not exit" >> $LOG_FILE
stop
exit 1
fi
end script
csh
/tcsh
リファレンスドキュメントによると、stop [jobIDs]
:
現在のバックグラウンドジョブまたはjobIDで指定されたバックグラウンドジョブを一時停止します。これはCtrl-Zまたは一時停止を補完するものです。
ここでは、特にサービスがまだ開始されていないpre-start
セクション(つまり、stop
スタンザによる)では、exec
の使用法は見当たりません。
ここで何かが足りませんか?または、ここでstop
は冗長で不要ですか?
ジョブ内でstop
を使用することは、Sudo stop <job-name>
を呼び出すことと同じです。これは、ジョブのrespawn
- ingを無効にする場合に使用されます。
開始前スタンザの開始文書には、この使用法を説明する例があります。
http://upstart.ubuntu.com/cookbook/#pre-start
もう1つの可能性は、何らかの理由でジョブの開始をキャンセルすることです。正当な理由の1つは、システム構成から、サービスが不要であることが明らかであるということです。
pre-start script if ! grep -q 'parent=foo' /etc/bar.conf ; then stop ; exit 0 fi end script