在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)