[program:yourapp]
command = bash -c "sleep 60 && exec urcmd'
startsecs = 65 ;
а потом
supervisorctl -c your_config_file reload
1. вам нужно использовать exec
команду, иначе она будет разветвляться на подпроцесс, sleep 60 && exec your command
и ваш прогресс будет выглядеть следующим образом
$ 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
а затем, когда вы используете, supervisorctl
чтобы остановить urApp, вы остановите прогресс 1818 и оставите 3872 прогресс сиротами
2. Рекомендую изменить startsecs на 5 больше, чем Sleep Sec, а затем, когда вы запустите это приложение и проверите статус, он покажет вам, что он запускается.
$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
в противном случае, если вы установите значение меньше секунд сна, при запуске приложения и проверке статуса вы получите статус выполнения, но он все еще находится в режиме ожидания cmd до реального выполнения
3. когда вы меняете файл конфигурации, вам нужно использовать команду reload или просто перезапустить супервизор, чтобы он заработал