我有一个运行“nohupped”的shell脚本后台进程。这个过程应该在陷阱中接收信号,但是在玩一些代码时,我注意到如果它们之间的间隔太小,一些信号会被忽略。陷阱函数的执行花费了太多时间,因此后续的信号将不可用。不幸的是,陷阱命令没有某种信号队列,这就是我问的原因:解决这个问题的最佳方法是什么?
一个简单的例子:
function receive_signal()
{
local TIMESTAMP=`date '+%Y%m%d%H%M%S'`
echo "some text" > $TIMESTAMP
}
trap receive_signal USR1
while :
do
sleep 5
done