我有一个bash脚本,运行SSH并执行一些命令。如果我使用Ctrl-C终止bash脚本,但是ssh会话(及其正在运行的命令)仍然在运行。在终止bash shell之前,如何有效地将Ctrl-C发送到ssh会话?
这个陷阱在按下Ctrl-C时会向进程组中的所有进程发送SIGTERM信号:trap 'kill 0' INT 值得注意的是,ssh可能会在其他系统上保留作业,并且您可以在远程命令中使用trap来处理这些作业。
你可以写出类似这样的代码:trap ctrl_c INT function ctrl_c() { echo "Pressed CTRL-C -> KILL SSH" kill -SIGINT $(pgrep ssh) }
trap
bash内置命令的相关文档 -- http://linux.die.net/man/1/bash --Ctrl-c
通常会生成SIGINT
信号。 - Rob Starling