How to force supervisord to stop a process in BACKOFF status

zenbeni picture zenbeni · Jul 2, 2014 · Viewed 10.3k times · Source

When you start a process using supervisord it is in "STARTING" status then if it gets trouble it gets in "BACKOFF" status if there is an autorestart set to true.

I don't want to wait for "startretries" to be attempted, I want to stop the restarting process manually using supervisorctl. The only way I found to do so is to stop the entire supervisord service and start it again (every process go in "STOPPED" status if there is no autostart).

Is there a better way to do so (force "STOPPED" status from "BACKOFF" status) as I have other processes managed in supervisord that I don't want to stop?

If I try to stop it with

supervisorctl stop process

I get

FAILED: attempted to kill process with sig SIGTERM but it wasn't running

If I try to start it with

supervisorctl start process

I get

process: ERROR (already started)

Of course I could disable the autorestart, but it can be useful, a workaround is to limit the startretries, is there a better solution?

Answer

Simon Jin picture Simon Jin · Apr 18, 2015

Hey this maybe help for you:

When an autorestarting process is in the BACKOFF state, it will be automatically restarted by supervisord. It will switch between STARTING and BACKOFF states until it becomes evident that it cannot be started because the number of startretries has exceeded the maximum, at which point it will transition to the FATAL state. Each start retry will take progressively more time.

so you don't need to stop the BACKOFF process manually. if you do not want to wait too long time, it is better to set a little number to startretries.

see more info here: http://supervisord.org/subprocess.html

GOOD LCUKY