mirror of
https://github.com/rnvm9wjdtj-bot/myaps_api.git
synced 2026-06-02 05:54:40 +00:00
138 lines
3.1 KiB
Batchfile
138 lines
3.1 KiB
Batchfile
@echo off
|
|
chcp 65001 >nul
|
|
REM =====================================================
|
|
REM 开发环境服务启停脚本 (Windows)
|
|
REM 用法:
|
|
REM dev_server.bat start - 启动服务
|
|
REM dev_server.bat stop - 停止服务
|
|
REM dev_server.bat restart - 重启服务
|
|
REM dev_server.bat status - 查看状态
|
|
REM =====================================================
|
|
|
|
setlocal EnableDelayedExpansion
|
|
|
|
REM 项目根目录
|
|
set "PROJECT_DIR=%~dp0.."
|
|
cd /d "%PROJECT_DIR%"
|
|
|
|
REM 配置
|
|
set "APP_NAME=myaps_api"
|
|
set "PID_FILE=%PROJECT_DIR%\storage\.dev_server.pid"
|
|
set "LOG_FILE=%PROJECT_DIR%\logs\dev_server.log"
|
|
set "HOST=0.0.0.0"
|
|
set "PORT=8000"
|
|
|
|
REM 创建日志目录
|
|
if not exist "%PROJECT_DIR%\logs" mkdir "%PROJECT_DIR%\logs"
|
|
|
|
REM 主命令
|
|
if "%1"=="" goto help
|
|
if "%1"=="start" goto start
|
|
if "%1"=="stop" goto stop
|
|
if "%1"=="restart" goto restart
|
|
if "%1"=="status" goto status
|
|
if "%1"=="logs" goto logs
|
|
if "%1"=="-h" goto help
|
|
if "%1"=="--help" goto help
|
|
goto help
|
|
|
|
:start
|
|
REM 检查是否已运行
|
|
tasklist /FI "IMAGENAME eq python.exe" /FI "WINDOWTITLE eq *main.py*" 2>nul | find "python.exe" >nul
|
|
if %errorlevel%==0 (
|
|
echo 服务已在运行中
|
|
goto end
|
|
)
|
|
|
|
echo 正在启动服务...
|
|
echo 项目目录: %PROJECT_DIR%
|
|
echo 访问地址: http://localhost:%PORT%
|
|
echo API文档: http://localhost:%PORT%/docs
|
|
echo.
|
|
|
|
REM 启动服务
|
|
start "myaps_api_server" /min python main.py
|
|
timeout /t 3 /nobreak >nul
|
|
|
|
REM 检查是否启动成功
|
|
tasklist /FI "IMAGENAME eq python.exe" 2>nul | find "python.exe" >nul
|
|
if %errorlevel%==0 (
|
|
echo ✓ 服务启动成功
|
|
echo 日志目录: %PROJECT_DIR%\logs
|
|
) else (
|
|
echo ✗ 服务启动失败
|
|
)
|
|
goto end
|
|
|
|
:stop
|
|
echo 正在停止服务...
|
|
|
|
REM 方式1: 通过窗口标题关闭
|
|
taskkill /FI "WINDOWTITLE eq myaps_api_server*" /F >nul 2>&1
|
|
|
|
REM 方式2: 通过命令行参数匹配关闭
|
|
for /f "tokens=2" %%i in ('tasklist /FI "IMAGENAME eq python.exe" /FO LIST ^| findstr "PID:"') do (
|
|
wmic process where "ProcessId=%%i and CommandLine like '%%main.py%%'" delete >nul 2>&1
|
|
)
|
|
|
|
timeout /t 2 /nobreak >nul
|
|
echo ✓ 服务已停止
|
|
goto end
|
|
|
|
:restart
|
|
call :stop
|
|
timeout /t 1 /nobreak >nul
|
|
call :start
|
|
goto end
|
|
|
|
:status
|
|
echo 检查服务状态...
|
|
echo.
|
|
|
|
REM 检查进程
|
|
tasklist /FI "IMAGENAME eq python.exe" 2>nul | find "python.exe" >nul
|
|
if %errorlevel%==0 (
|
|
echo ✓ 服务运行中
|
|
echo 访问地址: http://localhost:%PORT%
|
|
echo API文档: http://localhost:%PORT%/docs
|
|
echo.
|
|
echo 进程信息:
|
|
tasklist /FI "IMAGENAME eq python.exe" /FO TABLE
|
|
) else (
|
|
echo ✗ 服务未运行
|
|
)
|
|
goto end
|
|
|
|
:logs
|
|
if not exist "%LOG_FILE%" (
|
|
echo 日志文件不存在: %LOG_FILE%
|
|
echo.
|
|
echo 提示: 日志默认输出到控制台,请查看运行窗口
|
|
goto end
|
|
)
|
|
|
|
echo 最近50行日志:
|
|
echo ----------------------------------------
|
|
type "%LOG_FILE%" | more
|
|
goto end
|
|
|
|
:help
|
|
echo.
|
|
echo 用法: %~nx0 {start^|stop^|restart^|status^|logs}
|
|
echo.
|
|
echo 命令:
|
|
echo start - 启动服务
|
|
echo stop - 停止服务
|
|
echo restart - 重启服务
|
|
echo status - 查看服务状态
|
|
echo logs - 查看日志
|
|
echo.
|
|
echo 示例:
|
|
echo %~nx0 start
|
|
echo %~nx0 status
|
|
echo.
|
|
goto end
|
|
|
|
:end
|
|
endlocal
|