gpt4 book ai didi

bash - 如何优雅地停止 bash 脚本中的无限循环?

转载 作者:行者123 更新时间:2023-11-29 08:53:39 24 4
gpt4 key购买 nike

我需要每 X 秒运行一次应用程序,因此,就 cron 不能以这种方式处理秒数而言,我编写了一个带有无限循环的 bash 脚本,其中有 X 秒休眠。

当我必须手动停止正在运行的脚本时,我想以正确的方式来做——让应用程序完成功能,只是下次不要进入循环。

您知道如何实现吗?我想过传递参数,但我找不到如何将参数传递给正在运行的脚本。

最佳答案

你可以捕获一个信号,比如 SIGUSR1:

echo "My pid is: $$"
finish=0
trap 'finish=1' SIGUSR1

while (( finish != 1 ))
do
stuff
sleep 42
done

然后,当您想在下一次迭代中退出循环时:

kill -SIGUSR1 pid

其中 pid 是脚本的进程 ID。如果在 sleep 过程中信号升高,它会醒来( sleep sleep 直到任何信号出现)。

关于bash - 如何优雅地停止 bash 脚本中的无限循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11203201/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com