当你的 shell 脚本退出时,你可以使用 trap
命令来注册一个信号处理器,以便在脚本退出时终止后台进程/作业。
以下是一个示例脚本,它演示了如何使用 trap
命令来实现这一目标:
#!/bin/bash
# 定义一个函数,用于在脚本退出时终止后台进程/作业
cleanup() {
# 获取所有后台进程的 PID
local pids=$(jobs -p)
# 遍历所有后台进程,并终止它们
for pid in $pids; do
kill $pid
done
}
# 注册 cleanup 函数,以便在脚本退出时执行
trap cleanup EXIT
# 启动一些后台进程/作业
sleep 10 &
sleep 20 &
# 脚本退出时,cleanup 函数将自动执行,终止所有后台进程/作业
在这个示例中,我们定义了一个名为 cleanup
的函数,该函数用于终止所有后台进程/作业。然后,我们使用 trap
命令将 cleanup
函数注册为脚本退出时的信号处理器。最后,我们启动了两个后台进程/作业,并在脚本退出时自动终止它们。
请注意,这个示例仅适用于在脚本中启动的后台进程/作业。如果你需要终止其他类型的后台进程/作业,你可能需要使用其他方法。
领取专属 10元无门槛券
手把手带您无忧上云