如果脚本抛出错误,则退出外壳脚本

时间:2019-03-13 14:25:16

标签: shell unix sh

我有一个curl命令,可以启动以启动或停止进程。运行脚本以启动/停止服务时脚本可以按预期工作,但是当进程已经启动并且我尝试启动它时,它将引发异常再次。我怎样才能优雅地退出?

脚本:

x=$1
action=`echo "$x" | tr '[:upper:]' '[:lower:]'`
y=$2
#echo "ID passed is $y"

echo $action"ing the process..."

curl -s -S -k -u user:pass -X PUT https://URL/$action || exit 1

如果进程已停止/启动,则它将起作用。当我尝试启动已经处于“已启动”状态的进程时,会发生问题。

用法:./abc.sh start/stop 12345

错误消息是:

HTTP 409: Conflict

org.apache.juneau.rest.RestException: Action START cannot be performed for application instance TechDev2 (fadc6b5c-782a-46a1-bf46-21f331f669c0) because its state is STARTED.
        at com.platform.vem.gui.web.rest.EgoRestCallHandler.renderError(EgoRestCallHandler.java:60)
        at com.ibm.asc.ascd.core.rest.api.ConductorRestCallHandler.renderError(ConductorRestCallHandler.java:79)
        at org.apache.juneau.rest.RestCallHandler.handleError(RestCallHandler.java:273)
        at org.apache.juneau.rest.RestCallHandler.service(RestCallHandler.java:189)

1 个答案:

答案 0 :(得分:0)

您可以采取一些有帮助的措施:

  

在重新启动之前,请检查该进程是否已在运行。

使用ps -ef|grep <process>

  

启动/停止该过程时,请使用$?获取退出状态   并用它来设计流程。