在shell脚本编写中,每2小时执行一次特定操作是否有理想的实现?
由于我将此操作用于Android手机,我担心如果我使用busybox sleep 2hours
创建一个无限循环并且我在循环中操作,那么shell脚本会导致电池寿命和CPU消耗。任何人都可以展示一个更好的实现,可以使用最短的CPU时间吗?
答案 0 :(得分:2)
睡眠不会产生太多(几乎没有)CPU时间,所以你不必担心它一直运行。另外,bash只是等待它(睡眠)所以bash并没有真正使用太多的CPU能力。
要运行睡眠2小时,请使用2h参数。使用busybox,它的buxybox睡2小时。如果我们要将它放在循环中,我们可以这样做:
while busybox sleep 2h; do
... do some tasks or run checks
done
或者
while
... do some tasks or run checks
busybox sleep 2h
do
continue
done
如果睡眠突然中断,如关机或发送键盘中断信号时,这将阻止执行另一个任务。
您也可以考虑查看我之前发布的帖子:http://www.linuxquestions.org/questions/programming-9/optimizing-bash-process-4175431381/#post4802416
它接受输入而不是做睡眠,但是微小的修改也可以证明它有用。