如何停止使用 myFunc & 调用的无限循环函数

如何停止使用 myFunc & 调用的无限循环函数

在我的 bash 脚本中,我有一个函数可以在无限循环中执行一项特定任务。为了允许我的代码的下一部分同时运行,我使用myFunc &.

当程序的其余部分完成后,如何终止该函数?

答案1

有几种选择。如果这是您唯一的后台进程,那么您可以轻松地杀死它

kill %1

您可以保存子shell的PID:

myFunc &
myFunc_PID=$!
[...]
kill -HUP "$myFunc_PID"

您还可以使用

kill %myFunc

将子 shell 杀死放在 EXIT 处理程序中是有意义的:

trap 'kill %myFunc' EXIT

相关内容