bash中的信号陷阱只在RHEL7中工作一次(但不在Ubuntu中)

时间:2017-01-01 20:55:36

标签: bash unix signals rhel

在尝试进行陷阱睡眠循环时,我遇到了一个奇怪的(可能是特定于平台的问题)。

具体来说,以下代码:

saysomething() {
    trap saysomething 37
    echo "Hello there"
    while true; do
        sleep 1
    done
}

echo "Current pid: $$"
saysomething

打印&#34;你好&#34;每次我在Ubuntu 14.04上使用kill -37 <pid>从另一个shell发送信号。

但是,在RHEL 7计算机上,上面仅在第一次打印Hello there。之后,脚本继续执行,但无法响应任何更多信号。

造成这种差异的原因是什么?

1 个答案:

答案 0 :(得分:0)

不是真正的答案,但这是解决方法我最终使用以下作为解决方法:

Angular

我仍然无法解释这种行为差异的原因。