Как указать аргументы моно-программных опций при использовании supervisord?

Мы используем Linux supervisord для управления службой, работающей под моно. Это находится на Ubuntu 14.04.2 LTS с supervisord v3.0b2.

Я пытаюсь выяснить, как указать аргумент mono program-options, чтобы он распознавался при вызове команды Супервизор.

Монополе говорит, что формат команды:

mono [options] program [program-options]

В файле конфигурации для служебных программных опций у меня есть попробовал оба этих формата и не работал. Служба запускается, однако игнорирует аргумент -abc:

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

Если я запускаю первую команду в оболочке, она работает (аргумент -abc распознается и регистрируется во время запуска службы): [ ! d6] mono --gc=sgen MyService.exe -abc

Обратите внимание, что я использую sudo supervisorctl reeread, когда я изменяю конфигурационный файл службы. Вот полный файл:

[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

Что мне не хватает?

0
задан 8 June 2017 в 20:38

2 ответа

Чтобы устранить эту проблему, я решил включить ведение журнала отладки для процесса supervisord, чтобы я мог надеяться увидеть, какую команду он проанализировал из myservice.conf.

Я добавил строку loglevel=debug в supervisord раздела myservice.conf . Затем я обработал /var/log/supervisor/supervisord.log и перезапустил службу с помощью sudo service supervisor restart и увидел, что теперь был признан аргумент команды myservice!

BTW, я изменил его, чтобы использовать команду format:

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

Итак, по какой-то причине supervisorctl reread было недостаточно, мне пришлось перезапустить службу supervisord.

0
ответ дан 18 July 2018 в 11:57

Чтобы устранить эту проблему, я решил включить ведение журнала отладки для процесса supervisord, чтобы я мог надеяться увидеть, какую команду он проанализировал из myservice.conf.

Я добавил строку loglevel=debug в supervisord раздела myservice.conf . Затем я обработал /var/log/supervisor/supervisord.log и перезапустил службу с помощью sudo service supervisor restart и увидел, что теперь был признан аргумент команды myservice!

BTW, я изменил его, чтобы использовать команду format:

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

Итак, по какой-то причине supervisorctl reread было недостаточно, мне пришлось перезапустить службу supervisord.

0
ответ дан 24 July 2018 в 19:53

Другие вопросы по тегам:

Похожие вопросы: