【问题标题】:Sending general signal to child process of supervisord向supervisord的子进程发送一般信号
【发布时间】:2012-11-29 18:35:08
【问题描述】:

我正在使用 supervisord 来管理一堆进程。是否可以使用 supervisorctl 向这些进程发送任意信号而不实际停止它们并设置停止信号?

【问题讨论】:

    标签: supervisord


    【解决方案1】:

    在 3.2.0(2015 年 11 月发布)之前,supervisorctl 不支持向其管理的进程发送任意信号。

    从 3.2.0 开始,使用supervisorctl signal

    signal <signal name> <name>     Signal a process
    signal <signal name> <gname>:*      Signal all processes in a group
    signal <signal name> <name> <name>  Signal multiple processes or groups
    signal <signal name> all        Signal all processes
    

    所以

    supervisorctl signal HUP all
    

    会将SIGHUP 发送到主管管理的所有进程。

    在 3.2.0 之前,您可以改为使用 supervisorctl status 列出托管进程的 pids。然后使用killpids 发送信号。使用一点sed 魔法,您甚至可以提取那些pids 以作为kill 命令的输入:

    kill -HUP `bin/supervisorctl status | sed -n '/RUNNING/s/.*pid \([[:digit:]]\+\).*/\1/p'`
    

    还会将SIGHUP 发送到supervisord 控制下的所有活动进程。

    【讨论】:

    • 我的偏好是像 sed 这样的一个大命令来做这种事情:sed -n '/RUNNING/s/.*pid \([[:digit:]]\+\).*/\1/p' 而不是 grep | awk | sed | paste 等。
    • @MarkHarviston:我的 UNIX 命令行 fu 有点欠缺,你的方法很可能比我的好。
    • 可惜我想从 supervisorctl 发送 hup :((((
    【解决方案2】:

    As of 3.2.0,您现在可以向进程发送任意信号!

    $ supervisord --version
    3.2.0
    
    
    $ supervisorctl signal help
    Error: signal requires a signal name and a process name
    signal <signal name> <name>     Signal a process
    signal <signal name> <gname>:*      Signal all processes in a group
    signal <signal name> <name> <name>  Signal multiple processes or groups
    signal <signal name> all        Signal all processes
    
    
    $ supervisorctl signal HUP gateway
    gateway: signalled
    

    【讨论】:

      【解决方案3】:

      有一个名为mr.laforgethird-party plugin for supervisor

      让您轻松确保 supervisord 和受其控制的特定进程在 shell 和 Python 脚本中运行。 还向主管添加了一个 kill 命令,可以向子进程发送任意信号。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-07-30
        • 1970-01-01
        • 2022-06-15
        • 2020-03-25
        • 2019-04-11
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多