supervisord - 向supervisord的子进程发送一般信号

标签 supervisord

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

最佳答案

直到 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列出 pid s 的管理过程。然后使用 kill向那些人发送信号 pid s。带一点sed魔法,你甚至可以提取那些pid s 可接受作为 kill 的输入命令:
kill -HUP `bin/supervisorctl status | sed -n '/RUNNING/s/.*pid \([[:digit:]]\+\).*/\1/p'`

还会发SIGHUPsupervisord 下的所有事件进程控制。

关于supervisord - 向supervisord的子进程发送一般信号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13632399/

相关文章:

laravel-5 - Supervisor FATAl 退出太快(进程日志可能有详细信息)

python - 使用Supervisor启动Huey(Redis Celery)消费者

php - 如何在docker中正确配置supervisor

python - 模块 Flask 登录时出错

varnish - 如何使用supervisord配置ulimit(启动varnish)

supervisord - 主管 - 运行 python 脚本 PYTHONPATH 问题

php - 在 Laravel Supervisor 中使用多个排队作业的 Mysql 死锁

linux - Bash 管道和 SIGTERM

django - 获取 pkg_resources.DistributionNotFound : The 'supervisor==3.2.0' distribution was not found and is required by the application?

django - Supervisor FATAl Exited too quickly (process log may have details(About inet_http_server and unix_http_server)