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