its*_*dok 7 bash scripting sh long-running-processes sigterm
我想编写一个shell脚本,在后台生成几个长时间运行的进程,然后挂起.收到SIGTERM后,我希望所有子进程也终止.
基本上,我想要一个"主过程".
这是我到目前为止所得到的:
#!/bin/sh
sleep 600 &
PID1="$!"
sleep 600 &
PID2="$!"
# supposedly this should kill the child processes on SIGTERM.
trap "kill $PID1 $PID2" SIGTERM
wait
Run Code Online (Sandbox Code Playgroud)
上面的脚本失败了trap: 10: SIGTERM: bad trap.
编辑:我正在使用Ubuntu 9.04
tok*_*and 12
这对我有用:
trap "trap - SIGTERM && kill -- -$$" SIGINT SIGTERM EXIT
Run Code Online (Sandbox Code Playgroud)
乔的回答让我走上正轨.我还发现我应该捕获更多的信号来覆盖我的基地.
最终脚本如下所示:
#!/bin/sh
sleep 600 &
PID1="$!"
sleep 600 &
PID2="$!"
trap "kill $PID1 $PID2" exit INT TERM
wait
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
19185 次 |
| 最近记录: |