树莓派4B挂着的python脚本跑着跑着被系统terminated

在2G内存的树莓派4B上挂了几个脚本一直跑着,一般7-10天就会被系统强制杀掉,毕竟python的内存优化嘛比较呵呵。
通过下面命令可以直接查看你的内存使用状况

free -h

其中free表示真空着的内存,available表示被认为可用的内存
所以我做了个定时监控,查看到Avaliable的内存小于总内存的15%的时候对脚本进行一下重启

import schedule, psutil, sys, os, threading

def run_thread(jobs):
    try:
        threading.Thread(target=jobs).start()
    except:
        pass

def get_memory_status_with_psutil():
    mem = psutil.virtual_memory()
    #usage = float( mem.used/ mem.total) * 100
    #free= float( mem.free/ mem.total) * 100
    available= float( mem.available/ mem.total) * 100
    return free

def restart():
    os.execl(sys.executable, sys.executable, * sys.argv)

def memory_check():
    available= get_memory_status_with_psutil()
    print(available)
    if available< 15:
        restart()

if __name__ == "__main__":
    schedule.every().hour.do(run_thread, memory_check)
    while True:
        schedule.run_pending()
        time.sleep(1)

猜你喜欢

转载自blog.csdn.net/Elleryer/article/details/108508861