我需要编写一个在启动时自动启动的python脚本,并在覆盆子pi上每5分钟执行一次。如何才能做到这一点?特别是,如何避免脚本锁定运行infine循环的cpu等待5分钟结束?
答案 0 :(得分:8)
您可以轻松地使用cron执行此任务(计划运行Python脚本)。 ;)
我想你已经安装了 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)