这个问题在这里已经有了答案:
How can bash script do the equivalent of Ctrl-C to a background task?
(4 个回答)
5年前关闭。
我正在编写一个包含多个进程的守护进程。一旦第一个过程完成,它就会停止并需要手动中断 SIGINT(CTRL + C)。
在此之后运行下一个脚本。
过程 1 成功结束。
如何添加 SIGINT 以自动进一步处理?
这个问题可能是微不足道的,但只能找到我们如何在脚本中捕获给定的信号,但是我们如何在完成任务后添加一个?
最佳答案
您可以使用命令 kill -TERM -$$
终止当前的 bash shell 及其所有子进程。 .
编辑:
例如,如果您要启动以下流程:
process1 &
process2 &
process3 &
process4
要修改它,以便在任何进程结束时它会杀死您可以使用的所有其他进程:
( process1 ; kill -TERM -$$ ) &
( process2 ; kill -TERM -$$ ) &
( process3 ; kill -TERM -$$ ) &
process4 ; kill -TERM -$$
关于bash - 如何将 SIGINT 发送到 shell 脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39688106/