Выход из скрипта оболочки, если скрипт выдает ошибку - PullRequest
0 голосов
/ 13 марта 2019

У меня есть команда curl, которая запускается, чтобы запустить ИЛИ остановить процесс. JavaScript работает, как и ожидалось, когда я запускаю его для запуска / остановки службы, но выдает исключение, когда процесс уже запущен, и я пытаюсь запустить егоснова.Как я могу выйти изящно?

Сценарий:

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 голосов
/ 13 марта 2019

Вы можете поставить несколько вещей, которые могут помочь:

Проверьте, запущен процесс или нет, прежде чем запускать его снова.

Использовать ps -ef|grep <process>

Когда вы запускаете / останавливаете процесс, получите статус выхода с помощью $? и используйте его для проектирования потока.

...