我有一个运行程序的 C shell 脚本。该程序产生了一个 child 。当我通过 ctrl-C 将 SIGINT 发送到我的 shell 脚本时,shell 脚本以及我认为它产生的进程退出。但是,最后一个过程仍然存在。我如何指示 C shell 在退出之前杀死所有子进程?
请您参考如下方法:
如何为 SIGINT 创建一个信号陷阱? See the Interrupt Handling section here :
#!/bin/csh
# Setup sigint handler
onintr close
# start a background process
sleep 1000&
setenv pid $!
while (1 == 1)
echo Program is running
sleep 2
end
close:
echo End of program. Kill $pid
kill $pid