在Bash中以不同的频率运行两个操作

mag*_*gol 0 unix linux bash

我需要一个bash脚本来运行两个不同频率的应用程序.我不喜欢bash,需要一些帮助

我有两个程序,m1和m2,随着时间的推移以不同的速度运行(压力测试).m1例如每10秒运行一次,每30秒运行m2.但应该可以改变频率

gho*_*oti 5

为了简化其他几个答案:

$ while sleep 10; do echo 1; done &
$ while sleep 30; do echo 2; done &
Run Code Online (Sandbox Code Playgroud)

请注意,如果"m1"和"m2"命令需要一段时间才能执行,则不会每10/30秒运行一次.睡眠是一次运行结束和下一次运行开始之间的延迟.

因此,如果您真的想安排这些,那么它们每10或30秒运行一次,请使用cron.Cron每分钟运行一次,所以你需要有多个cron作业,与睡眠相抵消:

* * * * * m1
* * * * * sleep 10; m1
* * * * * sleep 20; m1
* * * * * sleep 30; m1
* * * * * sleep 40; m1
* * * * * sleep 50; m1
* * * * * m2
* * * * * sleep 30; m2
Run Code Online (Sandbox Code Playgroud)

请注意,如果运行m1时间超过10秒,您将重叠,这可能会导致计算机消失为量子奇点.