-
Notifications
You must be signed in to change notification settings - Fork 1.3k
Description
In a case,when a process can't start in the beginning,eg the binary defined in the conf doesn't exist or conf error,the program can't start to running state,still stay in backoff state.
ex_sample_1.1.1.0.223817.486782 BACKOFF can't find command '/home/admin/ex_sample_1.1.1.0.223817.486782/ex_sample'
then if we remove the supervisor conf,run sudo supervisorctl update
,the commnad will hang forever。
I have read the supervisor code,but still have a little confused,maybe I sitll doesnt' catch the point.
when I input sudo supervisorctl update
after I remove the BACKOFF
program supervisor conf,supervisorctl will call stopPorcessGroup,send this rpc all to supervisord http server,
results = supervisor.stopProcessGroup(gname)
and it hang,why stopProcessGroup has no timeout?
when the rpc all to supervisord service,supervisord service will call killall function,I thought it shoud be call once,if killall function failed,it will return to supervisorctl,why hang here?
killall = make_allfunc(processes, isRunning, self.stopProcess,
wait=wait)
killall.delay = 0.05
killall.rpcinterface = self
return killall # deferred
In the supervisord log,I found the killall function is called repeated,and no return to supervisorctl that the reason supervisorctl update
hang,but I didn't find the code which call the killall function repeatedly,pls show me how and why killall function called repeatedly,and how to solve it,thx