使用supervisord时如何指定mono程序选项参数?

使用supervisord时如何指定mono程序选项参数?

我们正在使用 Linuxsupervisord来管理在 mono 下运行的服务。这是在带有supervisordv3.0b2 的 Ubuntu 14.04.2 LTS 上。

我正在尝试弄清楚如何指定单声道程序选项参数,以便在 Supervisor 调用该命令时可以识别它。

Mono 帮助说命令格式是:

mono [options] program [program-options]

在服务的配置文件中/etc/supervisor/conf.d/myservice.conf,我尝试了这两种格式,但都不起作用。服务启动了,但是忽略了以下-abc参数:

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

如果我在 shell 中运行第一个命令,它就会起作用(该-abc参数在服务启动期间被识别并记录):

mono --gc=sgen MyService.exe -abc

请注意我使用sudosupervisorctl 重新读取每当我修改服务的配置文件时。以下是完整文件:

[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

我错过了什么?

答案1

为了解决这个问题,我决定为该supervisord进程启用调试日志记录,这样我就能看到它解析了什么命令我的服务配置文件

我把这行添加loglevel=debugsupervisord/etc/supervisor/supervisord.conf.然后我跟踪 /var/log/supervisor/supervisord.log并重新启动服务sudo service supervisor restart,发现 myservice 命令参数现在已经被识别了!

顺便说一句,我已经改回使用命令格式:

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

因此,由于某种原因supervisorctl reread还不够,我不得不重新启动该supervisord服务。

相关内容