【发布时间】:2014-07-25 07:26:59
【问题描述】:
我注意到当我通过这样的 bash 脚本运行挂起进程时
foo.sh:
sleep 999
如果我通过命令运行它,然后按 Ctrl+C
./foo.sh
^C
睡眠将被中断。但是,当我尝试用 SIGINT 杀死它时
ps aux | grep foo
kill -INT 12345 # the /bin/bash ./foo.sh process
然后看起来 bash 和 sleep 忽略了 SIGINT 并继续运行。这让我很惊讶。我认为 Ctrl + C 实际上是将 SIGINT 发送到前台进程,那么为什么终端中的 Ctrl + C 和 kill -INT 的行为不同?
【问题讨论】: