编写每5分钟执行一次的python脚本

时间:2014-02-08 16:14:47

标签: python timer autostart

我需要编写一个在启动时自动启动的python脚本,并在覆盆子pi上每5分钟执行一次。如何才能做到这一点?特别是,如何避免脚本锁定运行infine循环的cpu等待5分钟结束?

4 个答案:

答案 0 :(得分:8)

您可以轻松地使用cron执行此任务(计划运行Python脚本)。 ;)

如何设置cron

我想你已经安装了 cron ;如果没有,那么安装一些( vixie-cron 为例)。

使用以下内容创建新文件/etc/cron.d/<any-name>.cron

# run script every 5 minutes
*/5 * * * *   myuser  python /path/to/script.py

# run script after system (re)boot
@reboot       myuser  python /path/to/script.py

其中myuser是运行脚本的用户(出于安全原因,如果可能,它不应该是root用户)。如果这不起作用,请尝试将内容附加到/etc/crontab

您可能希望将脚本的stdout / stderr重定向到文件,以便检查一切是否正常。这与shell中的相同,只需在脚本路径之后添加>>/var/log/<any-name>-info.log 2>>/var/log/<any-name>-error.log之类的内容。

答案 1 :(得分:3)

您可以使用time.sleep

count = -1
while(not abort):
    count = (count+1) % 100
    if count == 0:
        print('hello world!')
    time.sleep(3)

答案 2 :(得分:1)

我认为您的代码需要不到 5 分钟,但每次运行的执行时间并不是恒定的。

import time

while True:
  t= time.time()

  # your code goes here
................
........
  
  t= time.time()-t
  time.sleep(300-t)

答案 3 :(得分:0)

使用schedule

  • 将报价单包装到函数中
import schedule 
import time 


def func():
    print("this is python")

schedule.every(5).minutes.do(func)

while True:
    schedule.run_pending()
    time.sleep(1)