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.
87 lines
2.3 KiB
87 lines
2.3 KiB
#!/usr/bin/env python3
|
|
"""
|
|
TermControlAgent 启动脚本
|
|
"""
|
|
import warnings
|
|
import sys
|
|
import os
|
|
import argparse
|
|
from app.core.app import create_app, create_development_app, create_production_app
|
|
from app.core.config import config
|
|
from app.utils.log import get_enhanced_logger, LogLevel
|
|
|
|
# 忽略paramiko的弃用警告
|
|
warnings.filterwarnings("ignore", category=DeprecationWarning, module="paramiko")
|
|
|
|
logger = get_enhanced_logger(__name__, LogLevel.INFO)
|
|
|
|
|
|
def main():
|
|
"""主函数"""
|
|
parser = argparse.ArgumentParser(description="TermControlAgent 启动脚本")
|
|
parser.add_argument(
|
|
"--env",
|
|
choices=["development", "production", "test"],
|
|
default="development",
|
|
help="运行环境 (默认: development)"
|
|
)
|
|
parser.add_argument(
|
|
"--host",
|
|
default=config.host,
|
|
help=f"监听地址 (默认: {config.host})"
|
|
)
|
|
parser.add_argument(
|
|
"--port",
|
|
type=int,
|
|
default=config.port,
|
|
help=f"监听端口 (默认: {config.port})"
|
|
)
|
|
parser.add_argument(
|
|
"--reload",
|
|
action="store_true",
|
|
default=config.debug,
|
|
help="启用热重载 (开发环境默认启用)"
|
|
)
|
|
parser.add_argument(
|
|
"--workers",
|
|
type=int,
|
|
default=1,
|
|
help="工作进程数 (默认: 1)"
|
|
)
|
|
|
|
args = parser.parse_args()
|
|
|
|
try:
|
|
logger.info("启动TermControlAgent",
|
|
environment=args.env,
|
|
host=args.host,
|
|
port=args.port,
|
|
reload=args.reload)
|
|
|
|
# 根据环境创建应用
|
|
if args.env == "development":
|
|
app = create_development_app()
|
|
elif args.env == "production":
|
|
app = create_production_app()
|
|
else:
|
|
app = create_app(environment=args.env)
|
|
|
|
# 启动服务器
|
|
import uvicorn
|
|
uvicorn.run(
|
|
app,
|
|
host=args.host,
|
|
port=args.port,
|
|
reload=args.reload,
|
|
workers=args.workers if args.workers > 1 else None
|
|
)
|
|
|
|
except KeyboardInterrupt:
|
|
logger.info("收到中断信号,正在关闭服务...")
|
|
except Exception as e:
|
|
logger.error("启动失败", error=str(e))
|
|
sys.exit(1)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|