【发布时间】:2013-12-04 18:58:08
【问题描述】:
我正在尝试使 bash 脚本等待使用和空命名管道的信号。我最喜欢这种方法:
while : ; do sleep 1 ; done
因为这是一种忙碌的等待
我试试:
trap 'echo SIGNAL!' INT
while true;
do
read
echo 'AFTER READ'
done < /tmp/fifo
/tmp/fifo 是空的命名管道
我得到:
bash: /tmp/fifo: Interrupted system call
SIGNAL!
bash 脚本中止。接收信号时如何使脚本保持循环? 谢谢
【问题讨论】:
-
如果你只是想让脚本自己暂停,让它自己发送
SIGSTOP;稍后,当您准备好恢复时,发送SIGCONT。这不需要脚本本身的任何特殊处理。 -
不,由于脚本已停止,它不会对发送给他的信号做出反应,p.e.信号情报