为什么要用“停止; 退出1“在一个暴发户脚本而不是只是”退出1“的情况下出现错误?

我正在维护一个Upstart脚本(版本0.6.5),在pre-start script ,如果不满足前提条件,则会有一个testing来终止该服务

 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或暂停的补充。

我看不出有什么用途可以stop来,特别是在服务尚未开始的pre-start部分(即由exec节)。

我在这里错过了什么? 或者是stop在这里多余的和不必要的?

在作业中使用stop等同于调用sudo stop <job-name> 。 如果你想禁用respawn工作,这将被使用。

有关启动节的新闻文档中有一个例子解释了这种用法:

http://upstart.ubuntu.com/cookbook/#pre-start

另一种可能是由于某种原因取消工作的开始。 一个很好的理由是,从系统configuration中可以清楚地看到不需要服务:

 pre-start script if ! grep -q 'parent=foo' /etc/bar.conf ; then stop ; exit 0 fi end script