You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

90 lines
2.5 KiB

from web import create_app
from core.ModelManager import mMM
import os
import platform
import shutil
import asyncio
import uvicorn
from hypercorn.asyncio import serve
from hypercorn.config import Config
from myutils.MyTraceMalloc import MyTraceMalloc
import subprocess
print(f"Current working directory (run.py): {os.getcwd()}")
app = create_app()
async def run_quart_app():
config = Config()
config.bind = ["0.0.0.0:5001"]
await serve(app, config)
def test():
mMM.test1()
def run_subprocess():
# 启动子进程,用于接收 stdin 输入并通过 stdout 返回结果
process = subprocess.Popen(
['python3', '-c', '''
import sys
# 从stdin读取输入
for line in sys.stdin:
# 处理输入并写回stdout
sys.stdout.write(f"Processed: {line}")
sys.stdout.flush() # 刷新stdout输出缓冲区
'''],
stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True
)
# 发送输入数据到子进程的 stdin
input_data = "Hello, subprocess!\n"
print(f"Sending to subprocess: {input_data}")
process.stdin.write(input_data)
process.stdin.flush() # 确保输入被传递给子进程
# 从子进程的 stdout 读取返回数据
output = process.stdout.readline() # 读取一行输出
print(f"Received from subprocess: {output}")
# 检查是否有错误输出
error = process.stderr.read()
if error:
print(f"Error from subprocess: {error}")
else:
print("no error!!")
# 关闭 stdin,并等待子进程完成
process.stdin.close()
process.wait()
if __name__ == '__main__':
#test()
#run_subprocess()
system = platform.system()
if system == "Windows":
total, used, free = shutil.disk_usage("/")
elif system == "Linux":
"""获取Linux系统的剩余存储空间"""
statvfs = os.statvfs(os.getcwd())
free = statvfs.f_bavail * statvfs.f_frsize
else:
raise NotImplementedError(f"Unsupported operating system: {system}")
print(free/(1024*1024))
# #内存监控线程
# myTM = MyTraceMalloc()
# threading.Thread(target=myTM.trace_memory, daemon=True).start()
#启动工作线程
mMM.start_work() # 启动所有通道的处理
#mVManager.start_check_rtsp() #线程更新视频在线情况
#启动web服务
asyncio.run(run_quart_app())
#uvicorn.run("run:app", host="0.0.0.0", port=5001, workers=4,reload=True)