Isso não funcionará porque o comando service ... start
inicia o programa como daemon e o envia em segundo plano. O supervisord
não pode lidar com isso em vez disso, precisa iniciá-los como subprocesso e executá-los no forground. Veja aqui :
Programs meant to be run under supervisor should not daemonize themselves. Instead, they should run in the foreground. They should not detach from the terminal from which they are started. The easiest way to tell if a program will run in the foreground is to run the command that invokes the program from a shell prompt. If it gives you control of the terminal back, but continues running, it’s daemonizing itself and that will almost certainly be the wrong way to run it under supervisor. You want to run a command that essentially requires you to press Ctrl-C to get control of the terminal back. If it gives you a shell prompt back after running it without needing to press Ctrl-C, it’s not useful under supervisor. All programs have options to be run in the foreground but there’s no “standard way” to do it; you’ll need to read the documentation for each program.
Aqui está um exemplo de configuração de programa do "mundo real" da documentação do supervisord :
Apache 2.2.6:
[program:apache2]
command=/path/to/httpd -c "ErrorLog /dev/stdout" -DFOREGROUND
redirect_stderr=true
Os scripts de inicialização do seu programm podem ser um bom lugar para descobrir como o programa é iniciado, para uma configuração adequada.
Alguns exemplos são aqui