You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

树莓派脚本调度问题:如何限时循环运行两个带循环的Python脚本

解决树莓派脚本循环启停的问题

我明白你的痛点——直接用execfile会让目标脚本的循环霸占当前进程,根本没法按时终止。咱们得换个思路,把Final.py和A.py作为独立的子进程启动,这样就能精准控制它们的运行时长了。

下面是修改后的p.py代码,完美实现你的需求:

import subprocess
import time

while True:
    # 启动Final.py作为独立进程
    final_proc = subprocess.Popen(["python3", "Final.py"])
    # 让它运行5秒
    time.sleep(5)
    # 终止进程(如果terminate不够狠,可以换成final_proc.kill())
    final_proc.terminate()
    # 等待进程彻底结束,避免僵尸进程
    final_proc.wait()

    # 启动A.py作为独立进程
    a_proc = subprocess.Popen(["python3", "A.py"])
    # 让它运行25秒
    time.sleep(25)
    # 终止进程
    a_proc.terminate()
    a_proc.wait()

关键知识点说明:

  • 为什么不用execfile?:execfile会把目标脚本的代码直接加载到当前p.py的进程中执行,一旦Final.py里有无限循环,p.py的后续代码(比如time.sleep(5))根本没机会运行,自然没法终止它。用subprocess.Popen则会创建一个全新的进程,两者互不阻塞。
  • terminate() vs kill():terminate()会给子进程发送终止信号,让它有机会清理资源后退出;如果目标脚本完全不理会这个信号,再用kill()强制杀死进程。
  • Python版本注意:如果你的树莓派默认用Python2,把python3改成python就行。

内容的提问来源于stack exchange,提问作者Tony

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 07:17:13