[program:yourapp]
command = bash -c "sleep 60 && exec urcmd'
startsecs = 65 ;
e poi
supervisorctl -c your_config_file reload
1. è necessario utilizzare il exec
comando, altrimenti verrà eseguito il fork di un sottoprocesso sleep 60 && exec your command
e i tuoi progressi saranno i seguenti
$ 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 quindi quando si utilizza supervisorctl
per interrompere urApp, si interromperanno i progressi 1818 e si lascerà 3872 un progresso orfano
2.consiglia di cambiare startecs a 5 in più rispetto ai secondi di sonno, quindi quando avvii questa app e controlli lo stato, ti mostrerà che sta iniziando
$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
altrimenti se imposti un valore inferiore ai secondi di sospensione, quando avvii l'app e ne controlli lo stato, otterrai uno stato in esecuzione, ma è ancora inattivo cmd prima dell'esecuzione reale
3.quando si modifica il file di configurazione, è necessario utilizzare ricaricare cmd o semplicemente riavviare il supervisord per farlo funzionare