Skip to content
Advertisement

Upstart stop if running

I have a Jenkins job to stop a node application, deploy code, and start the application.

The start/stop is done with an Upstart script.

I use initctl stop node-App

If the job is running, this works great. But if the app has died or is in a stopped state, the output is initctl: Unknown instance:

This causes the Jenkins job to fail and not proceed to the next steps.

Is there a way to check if the job is started before issuing the start command? Or is there a way for Jenkins to not consider that an error and fail the job?

Advertisement

Answer

A colleague came up with a great solution

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

Very simple and works properly when run from Jenkins

User contributions licensed under: CC BY-SA
8 People found this is helpful
Advertisement