我想编写一个 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
上述脚本因 trap: 10: SIGTERM: bad trap
而失败。
编辑:我使用的是 Ubuntu 9.04
最佳答案
这对我有用:
trap "trap - SIGTERM && kill -- -$$" SIGINT SIGTERM EXIT
关于bash - 生成进程的 shell 脚本,在 SIGTERM 上终止子进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/976059/