1
基本上我想要一个bash脚本进程,在收到SIGINT
后,在退出之前终止它的所有子进程。我读here使用的线沿线的东西:
trap "kill -TERM -$$ ; exit 1" INT QUIT
我也看过使用kill 0
:
trap "kill -TERM 0 ; exit 1" INT QUIT
它们之间有什么区别?它们满足以下要求(如果):
- 仅杀死自己及其子女(假设它是由终端命令启动的顶级进程)。
- 它不会杀死任何其他进程或同一个shell脚本的实例(从单独的终端命令运行:即在运行
./foo.sh &
然后./foo.sh
时,即使在同一个tty中也不应该杀死第二个进程) 。
你没有回答我的问题的其余部分。 – Matt
我什么时候提过进程名或ps命令? – Matt