如何防止睡眠混乱

如何防止睡眠混乱

我运行了两个脚本。两者本质上是相同的代码,但它们需要间隔 5 分钟运行以防止冲突。第一个脚本:#!/bin/sh

# First run
line="Bonus check"
        stamp=$(date +%Y%m%d-%H%M)
      # sleep 90s
        echo "$stamp\t $line" >> /home/rdanner3/Desktop/CardParty.log
        {
export DISPLAY=:0.0
google-chrome [URL masked]
        }
sleep 45s
# google-chrome
pkill -f chrome

# Second run to seventh run identical to above; stripped for brevity.

第二个脚本(注意,它本质上是相同的代码;两者都需要循环才能保持理智!)

#!/bin/sh

# 1st run
line="Bonus checked."
stamp=$(date +%Y%m%d-%H%M)
# sleep 90s
echo "$stamp\t $line" >> /home/rdanner3/Desktop/Slots.log
{
export DISPLAY=:0.0
google-chrome [URL masked]
}
sleep 45s
# google-chrome
pkill -f chrome

# 2nd run to 7th run identical to above code...stripped for brevity

当脚本第二次运行时会发生什么?尽管最初启动它们的 cron 作业相隔 5 分钟,但它们在几秒钟内运行。很明显(从两个脚本写入的日志文件来看),它们的启动时间相隔了几秒钟,并且顺序不正确。将第二个脚本切换为(比如说)ash 或 bash 是否有用,可以避免两个脚本的睡眠命令相互混淆?或者我犯了其他错误(例如,需要取消注释 google-chrome 的第二次运行,以允许 pkill 清除误会)

昨天注意到了这个问题,觉得我需要一点帮助。所以我来这里寻求帮助。

答案1

错误可能在于依赖睡眠进行绝对计时而不是相对计时。睡眠之前的事情可能花费不同的时间。

删除重复的代码后,我可能会at在循环中使用,或者更有可能使用更复杂的用法cron

如果确切的开始时间不重要,我会在一个简单的循环中顺序调用两个函数。结合两个脚本。

相关内容