【发布时间】:2019-12-10 14:39:13
【问题描述】:
我试图让hollywood 以一种我可以用正常的 Ctrl+C 信号退出的方式运行。
目前,我必须多次按 Ctrl+C 才能卡在 hollywood 创建的 tmux 实例中。看source code,有一个trap命令:
trap "pkill -f -9 lib/hollywood/ >/dev/null 2>&1; exit 0" INT
但显然这还不够。我试过用几个不同的替换它,但没有一个能做对:
trap "trap - SIGTERM && kill -- -$$" SIGINT SIGTERM EXIT
trap 'kill $(jobs -p)' EXIT
trap 'pkill -f -9 lib/hollywood/ >/dev/null 2>&1; kill -9 $(ps -eo pid,command | grep tmux | grep byobu | grep hollywood | sed -r "s/^[^0-9]*([0-9]+).*/\1/") >/dev/null 2>&1; exit 0' INT
trap "exit" INT TERM
trap "kill 0" EXIT
我已经尝试了这个问题的几个答案:How do I kill background processes / jobs when my shell script exits? 但这些都没有奏效。 (我还是要按 Ctrl+C 几次,然后手动退出 tmux 会话。)
有没有简单的方法来解决这个问题? (我宁愿不必过多地弄乱源代码。)
【问题讨论】:
标签: bash child-process kill tmux bash-trap