重新加载 supervisord 会导致其下的进程停止吗?

Posted

技术标签:

【中文标题】重新加载 supervisord 会导致其下的进程停止吗?【英文标题】:Will reloading supervisord cause the process under its to stop? 【发布时间】:2011-04-17 01:33:41 【问题描述】:

我试图弄清楚我何时使用 reload 命令来管理 supervisord。它会停止当前在其下执行的处理吗? 我使用了以下步骤:

mlzboy@mlzboy-mac:~/my/ide/test$ pstree -p|grep super
        |-supervisord(6763)
mlzboy@mlzboy-mac:~/my/ide/test$ supervisorctl 
daemon                           STARTING   
supervisor> reload
Really restart the remote supervisord process y/N? y
Restarted supervisord
supervisor> exit
mlzboy@mlzboy-mac:~/my/ide/test$ pstree -p|grep super
        |-supervisord(6763)

我发现进程id没有改变。那么是否证明 reload 不会停止主管控制下的处理?

【问题讨论】:

我自己想出来的,它会杀死所有子进程,我也犯了一个错误,在nginx vs supervisor中动词reload,在nginx中表示重新加载配置,在supervisor中表示重新启动,等效动词是更新。但是为什么pid没有改变,我仍然很困惑,任何人都可以解释一下吗? 【参考方案1】:

它不会杀死supervisord进程,它只是停止所有进程,重新加载配置文件,然后重新启动进程。

如果您只想应用新配置,请使用reread 命令。它只会重新加载配置而不会停止和重新生成进程。

运行update 将重新启动已更改的进程(组)。

【讨论】:

xml-rpc 似乎没有提供远程控制的重读或更新 api supervisord.org/api.html?highlight=rpc#supervisor.xmlrpc,有什么办法可以远程控制,而不是通过 supervisorctl 抱歉我的粗心,我找到了,但我遇到了另一个问题,如何知道当前主管使用哪个配置文件,因为我有很多用于测试、开发等的 conf 文件,我可以' t区分它们,除非知道当前使用的conf文件位置,然后我可以检查它

以上是关于重新加载 supervisord 会导致其下的进程停止吗?的主要内容,如果未能解决你的问题,请参考以下文章

logstash使用supervisord

supervisord 进程管理利器

supervisord使用

[CVE-2017-11610] Supervisord远程命令执行漏洞

Linux进程管理工具 Supervisord 的安装 及 入门教程

如何使用supervisorctl仅重新启动某些进程?