如何在中断后重启程序?

时间:2016-03-16 16:43:48

标签: bash shell

如何在中断后再次启动程序并终止上一个程序?我必须在我的功能中写些什么?或者也许存在另一种重启程序的方法?

this_program.sh

trap 'mySig' SIGINT
mySig()
{
        ./this_program.sh
}

1 个答案:

答案 0 :(得分:1)

如果你想使用信号处理程序,你应该:

  • 确保将新流程与正在运行的流程分开并
  • 实际上终止了信号处理程序中的运行进程

示例:

trap 'mySig' SIGINT
mySig()
{
        ./this_program.sh & disown
        kill $$
}

您还可以从包装器进程运行程序:

while true
do
    ./this_program.sh
done