我有一个
Bash脚本“脚本”大致如下所示:
#!/bin/bash cmd1 | cmd2 | cmd3
当我执行一个kill脚本(或者更确切地说,当我在supervisord中执行’stop script’)时,并非所有cmd *都被杀死.如何确保它们与产生它们的脚本一起终止?
解决方法
Supervisord具有stopasgroup和killasgroup选项(默认为false),用于确定是否将SIGTERM / SIGKILL信号传播到子进程.
[program:script] command=script stopasgroup=true killasgroup=true
(这些配置变量都记录在http://supervisord.org/configuration.html.)