@echo off
|
chcp 65001 >nul
|
echo ========================================
|
echo E云管家-DifyAI对接服务 Windows服务安装脚本
|
echo ========================================
|
echo.
|
|
:: 检查管理员权限
|
net session >nul 2>&1
|
if %errorLevel% == 0 (
|
echo 检测到管理员权限,继续安装...
|
) else (
|
echo 错误:需要管理员权限才能安装Windows服务
|
echo 请右键点击此脚本,选择"以管理员身份运行"
|
pause
|
exit /b 1
|
)
|
|
:: 获取当前目录
|
set "CURRENT_DIR=%~dp0"
|
set "SERVICE_NAME=ECloudDifyService"
|
set "SERVICE_DISPLAY_NAME=E云管家-DifyAI对接服务"
|
set "SERVICE_DESCRIPTION=将E云管家消息转发到DifyAI并返回AI回答的服务"
|
set "EXE_PATH=%CURRENT_DIR%ecloud_dify.exe"
|
|
echo 当前目录: %CURRENT_DIR%
|
echo 服务名称: %SERVICE_NAME%
|
echo 可执行文件: %EXE_PATH%
|
echo.
|
|
:: 检查exe文件是否存在
|
if not exist "%EXE_PATH%" (
|
echo 错误:找不到可执行文件 %EXE_PATH%
|
echo 请确保已经完成项目打包,并且ecloud_dify.exe文件存在
|
pause
|
exit /b 1
|
)
|
|
:: 停止并删除已存在的服务
|
echo 检查是否存在同名服务...
|
sc query "%SERVICE_NAME%" >nul 2>&1
|
if %errorLevel% == 0 (
|
echo 发现已存在的服务,正在停止并删除...
|
sc stop "%SERVICE_NAME%" >nul 2>&1
|
timeout /t 3 /nobreak >nul
|
sc delete "%SERVICE_NAME%" >nul 2>&1
|
if %errorLevel% == 0 (
|
echo 已删除旧服务
|
) else (
|
echo 警告:删除旧服务失败,继续安装新服务
|
)
|
echo.
|
)
|
|
:: 创建Windows服务
|
echo 正在创建Windows服务...
|
sc create "%SERVICE_NAME%" binPath= "\"%EXE_PATH%\"" DisplayName= "%SERVICE_DISPLAY_NAME%" start= auto
|
if %errorLevel% == 0 (
|
echo 服务创建成功
|
) else (
|
echo 错误:服务创建失败
|
pause
|
exit /b 1
|
)
|
|
:: 设置服务描述
|
sc description "%SERVICE_NAME%" "%SERVICE_DESCRIPTION%"
|
|
:: 设置服务恢复选项(失败时自动重启)
|
sc failure "%SERVICE_NAME%" reset= 86400 actions= restart/5000/restart/10000/restart/30000
|
|
echo.
|
echo 服务安装完成!
|
echo.
|
echo 可用的操作:
|
echo 1. 启动服务: sc start %SERVICE_NAME%
|
echo 2. 停止服务: sc stop %SERVICE_NAME%
|
echo 3. 查看服务状态: sc query %SERVICE_NAME%
|
echo 4. 删除服务: sc delete %SERVICE_NAME%
|
echo.
|
echo 或者使用Windows服务管理器 (services.msc) 进行管理
|
echo.
|
|
:: 询问是否立即启动服务
|
set /p START_NOW="是否立即启动服务?(Y/N): "
|
if /i "%START_NOW%"=="Y" (
|
echo 正在启动服务...
|
sc start "%SERVICE_NAME%"
|
if %errorLevel% == 0 (
|
echo 服务启动成功!
|
echo 服务将在端口 7979 上运行
|
echo 可以通过 http://localhost:7979 访问服务
|
) else (
|
echo 服务启动失败,请检查配置文件和日志
|
)
|
) else (
|
echo 服务已安装但未启动
|
echo 可以稍后通过 sc start %SERVICE_NAME% 启动服务
|
)
|
|
echo.
|
pause
|