Como especificar argumentos de opções de programa mono ao usar o supervisord?

0

Estamos usando o Linux supervisord para gerenciar um serviço executado em mono. Isso é no Ubuntu 14.04.2 LTS com supervisord v3.0b2.

Estou tentando descobrir como especificar um argumento mono opções de programa para que seja reconhecido quando o comando for chamado pelo Supervisor.

A ajuda mono diz que o formato do comando é:

mono [options] program [program-options]

No arquivo de configuração do serviço /etc/supervisor/conf.d/myservice.conf , eu tentei ambos os formatos e nem trabalho. O serviço é iniciado, no entanto, ignora o argumento -abc :

command=mono --gc=sgen MyService.exe -abc
command=mono --gc=sgen MyService.exe -- -abc

Se eu executar o primeiro comando no shell, ele funcionará (o argumento -abc é reconhecido e registrado durante a inicialização do serviço):

mono --gc=sgen MyService.exe -abc

Note que eu uso sudo supervisorctl reler sempre que modifico o arquivo de configuração do serviço. Aqui está o arquivo completo:

[program:myservice]
environment=LD_LIBRARY_PATH=.
command=mono --gc=sgen MyService.exe -- -abc
user=myuser
stderr_logfile=/var/log/myservice/myservice-err.log
stdout_logfile=/var/log/myservice/myservice-stdout.log
directory=/opt/myservice

O que estou perdendo?

    
por Alan 08.06.2017 / 18:42

1 resposta

0

Para resolver este problema, decidi activar o registo de depuração para o processo supervisord , para poder ver o comando que foi analisado em myservice.conf .

Eu adicionei a linha loglevel=debug na seção supervisord do /etc/supervisor/supervisord.conf . Então eu segui /var/log/supervisor/supervisord.log e reiniciei o serviço com sudo service supervisor restart e vi que o argumento do comando myservice agora estava sendo reconhecido!

BTW, eu mudei de volta para usar o formato de comando:

command=mono --gc=sgen MyService.exe -abc

Então, por algum motivo supervisorctl reread não foi suficiente, tive que reiniciar o serviço supervisord .

    
por Alan 08.06.2017 / 19:31