我需要处理SIGTERM并保持脚本运行。
#!/bin/bash
trap 'echo do-nothing' SIGTERM
sleep 10m &
wait $!
为什么在SIGTERM脚本退出之后,以及如何使其运行直到sleep 10m &
完成?
答案 0 :(得分:0)
已解决:
#!/bin/bash
trap 'echo SIGTERM' SIGTERM
sleep 1m &
echo waiting
wait $!
echo Got signal but still waiting
wait $!
echo bye
输出:
waiting
SIGTERM
Got signal but still waiting
bye
它将“吞噬” 一个信号,并在sleep 1m &
完成后退出。
答案 1 :(得分:0)
该信号将始终将执行点从wait
转移到trap
,并且显然会在断开wait
的下一条语句处执行。
也许是吗?
#!/bin/bash
trap 'echo nope; wait $pid' term
sleep 10m & pid=$1
wait $pid
echo "Done - exited with code '$?'"
date