我编写了一个bash脚本A,它在循环中调用另一个脚本B超过1000次。
Ctrl + C 仅杀死脚本B,只杀死一次。脚本A继续运行并再次调用脚本B.
我可以在这些脚本中重写一些内容,以便 Ctrl + C 会杀死脚本A吗?
答案 0 :(得分:4)
你可以捕获你的杀戮信号并做你想做的任何事情(例如杀死A而不是B)。见here如何。 如果你在B中使用它,试着让它杀死它的父...
答案 1 :(得分:0)
正确的做法是确保两个脚本都在同一个进程组中执行。然后当您按SIGINT
时,他们都会收到Ctrl-C
信号。
从你所说的,由于某种原因,他们进入了不同的过程组。如果执行脚本A的shell认为它(shell)是交互式的,则可能发生这种情况。很难从你的描述中说出更多信息 - 随意粘贴一些示例代码(并描述你如何启动脚本),我们将看看。