bash - 如何将 SIGINT 发送到 shell 脚本?

标签 bash shell unix

这个问题在这里已经有了答案:





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/

相关文章:

shell - 运行 Emacs shell 时可见的 ANSI 转义序列(这些不是 ANSI 颜色)

bash - 是否有用于遍历相似目录结构的 Bash 快捷方式?

unix - 从 OCaml 内部调用外部程序

linux - 读取应该只是数字的输出

linux - 如何将额外值连接到一个命令的输出并将其传递给另一个 Unix 命令

linux - 为什么 Linux 中的 rm 命令可以在几秒钟内删除文件/目录,而在 FTP 中删除却非常慢

bash - find -exec - 仅抑制查找错误,但不抑制执行命令的错误

linux - 使用 Unix 排序对多个键进行排序

linux - 为什么 tar -c 命令从成员名称中删除前导 `/'

linux - 通过 shell 脚本实现自动化