python利用cmd定时重启django服务器

本文介绍了一种针对32位服务器上运行的Python-Django应用因内存限制而频繁出现MemoryError的问题解决方案。通过使用批处理文件结合Python脚本实现服务定时重启,避免了内存溢出导致的服务不可用情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题描述:服务器是32位的,所以python会出现memoryerror的问题,由于没有办法短期内更换到64位系统,所以就只能用这个办法,把服务定时重启,让内存不会溢出
用到了批处理

之前用的是 subprocess  .kill 出现杀不掉的情况

问题出在kill的是cmd命令,而不是python执行后的结果

所以需要根据占用端口,获取真正的python-django的pid

@echo off  kill8000.bat
set port=8000
for /f "tokens=1-5" %%i in ('netstat -ano^|findstr "0.0.0.0:%port%"') do (
    echo kill the process %%m who use the port %port%
    taskkill /F /pid %%m
)

#encoding:utf-8
  
import os  
import subprocess
import time
from multiprocessing import Process  


def main():  
    while True:
        p = subprocess.Popen("python manage.py runserver 0.0.0.0:8000 ")
        #p=os.system("python manage.py runserver 0.0.0.0:8000")
        time.sleep(60*60*3)
        #p.terminate() 
        #cmd = "taskkill /F /pid:"+str(p.pid)
        cmd="kill8000.bat"
        os.system(cmd)
main()

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值