Upstart stop if running
bash, jenkins, linux, upstart
Solution
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
Problem
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?