Shell 当涉及信号时,如何正确地将程序包装在脚本中

Shell 当涉及信号时,如何正确地将程序包装在脚本中,shell,signals,Shell,Signals,我正在编写一个程序,需要能够按需重新启动该程序。据我所知,最干净的方法是将其包装在脚本中,该脚本如下所示: #!/bin/sh while [ true ] do /path/to/myProgram RETURN_VALUE=$? if [ $RETURN_VALUE -eq 1 ] then echo "Relaunch program" else echo "Stop"

我正在编写一个程序,需要能够按需重新启动该程序。据我所知,最干净的方法是将其包装在脚本中,该脚本如下所示:

#!/bin/sh

while [ true ]
do
    /path/to/myProgram
    RETURN_VALUE=$?

    if [ $RETURN_VALUE -eq 1 ]
    then
        echo "Relaunch program"
    else
        echo "Stop"
        break
    fi
done

return $RETURN_VALUE
我所处的环境中,脚本和程序始终位于已知位置,因此我可以简单地使用脚本,就好像它是基础程序一样,并添加了功能

只要脚本直接在终端中运行,它就可以正常工作,但使用
killall
向脚本发送
SIGINT
SIGTERM
会在不终止程序的情况下终止脚本

是否有办法将所有信号转发到程序?