我想要一个自定义的“停止”脚本runit
( runsv
) 在必须停止/重新启动进程时执行。目前它只是终止进程,然后运行“完成”脚本。但就我而言,我的进程会动态生成子进程,因此kill
我需要 a"killtree"
来摆脱它们,而不是 simple 。我怎么做?
我知道它应该通过control
runit的选项来完成,但是从阅读文档来看,我并不清楚应该如何命名停止脚本:(
cor*_*ump 13
从文档
对于发送到控制管道的每个控制字符 c,runsv 首先检查 service/control/c 是否存在并且是否可执行。如果是这样,它会启动 service/control/c 并等待它终止,然后再解释命令。如果程序以返回码 0 退出,runsv 将避免向服务发送相应的信号。命令 o 始终被视为命令 u。在命令 d 上,首先检查 service/control/t,然后检查 service/control/d。在命令 x 上,首先检查 service/control/t,然后检查 service/control/x。无法自定义可选日志服务的控制。
这意味着您需要创建一个service_name/control/X
, X 是一个可执行文件,它将在您将相关sv
命令发送到服务时运行,例如d
命令 (down)。如果您的脚本以状态 0 退出,它不会尝试关闭服务本身。
基本上你需要一个可执行脚本,/etc/sv/<service>/control/d
它可以做你想做的任何事情并杀死服务,清理 pids 等。
归档时间: |
|
查看次数: |
6743 次 |
最近记录: |