Остановка при запуске

У меня есть задание Jenkins, чтобы остановить приложение узла, развернуть код и запустить приложение.

Запуск / остановка выполняется с помощью сценария Upstart.

я использую initctl stop node-App

Если работа запущена, это прекрасно работает. Но если приложение умерло или находится в остановленном состоянии, вывод initctl: Unknown instance:

Это приводит к сбою задания Jenkins и не позволяет перейти к следующим шагам.

Есть ли способ проверить, запущено ли задание перед выдачей команды запуска? Или у Дженкинса есть способ не считать это ошибкой и провалить работу?

1 ответ

Решение

Коллега придумал отличное решение

if ( initctl status node-App | grep start ); then
  initctl stop node-App
fi

Очень просто и работает правильно при запуске из Дженкинс

Я использую аналогичную конструкцию

initctl stop node-App || echo "node-App was not running"
Другие вопросы по тегам