[program:yourapp]
command = bash -c "sleep 60 && exec urcmd'
startsecs = 65 ;
e depois
supervisorctl -c your_config_file reload
1. você precisa usar o exec
comando, caso contrário ele irá bifurcar um subprogress sleep 60 && exec your command
e seu progresso será como o seguinte
$ ps -ef|grep urcmd
work 1818 1698 0 17:35 ? 00:00:00 bash -c sleep 60 && urcmd
work 3872 1818 0 17:36 ? 00:00:00 urcmd
e quando você usa supervisorctl
para interromper o urApp, interrompe o progresso de 1818 e deixa 3872 um progresso órfão
2. recomendo alterar os segundos de inicialização para 5 a mais do que os segundos de suspensão; quando você iniciar este aplicativo e verificar o status, ele mostrará que está começando
$supervisorctl -c your_config_file status;echo;ps -ef|grep urcmd
urapp STARTING
otherapp RUNNING pid 13502, uptime 0:00:55
$supervisorctl -c your_config_file status;echo;ps -ef|grep urcmd
urapp RUNNING pid 13503, uptime 0:00:05
otherapp RUNNING pid 13502, uptime 0:00:65
caso contrário, se você definir o valor como menor que os segundos de suspensão, ao iniciar o aplicativo e verificar o status, você obterá um status de execução, mas ainda estará dormindo cmd antes da execução real
3. quando você altera seu arquivo de configuração, é necessário usar o comando reload cmd ou apenas reiniciar sua supervisord para fazê-lo funcionar