Skip to content

关于添加守护服务的设想 #89

@feifeixl661e4

Description

@feifeixl661e4

win系统最容易出现各种意向不到的情况,导致linker服务停止运行。可以在托盘程序上加上一个勾选框守护程序
利用win任务计划来执行,附上完整bat示例
@echo off
chcp 936 >nul
setlocal enabledelayedexpansion

echo =========================================
echo 正在创建 TongZhiService 服务守护任务计划
echo =========================================
echo.

REM ============================
REM 基本配置
REM ============================
set SERVICE_NAME=linker.service
set TASK_NAME=Watchdog_TongZhiService
set WORK_DIR=%~dp0

REM ============================
REM 生成服务守护 BAT(同目录)
REM ============================
set WATCH_BAT=%WORK_DIR%watch_%SERVICE_NAME%.bat

echo @echo off > "%WATCH_BAT%"
echo sc query "%SERVICE_NAME%" ^| findstr /i "STOPPED" ^>nul >> "%WATCH_BAT%"
echo if %%errorlevel%%==0 ( >> "%WATCH_BAT%"
echo sc start "%SERVICE_NAME%" >> "%WATCH_BAT%"
echo ) >> "%WATCH_BAT%"

echo 已生成服务检测脚本:
echo %WATCH_BAT%
echo.

REM ============================
REM 删除旧任务(如果存在)
REM ============================
schtasks /query /tn "%TASK_NAME%" >nul 2>&1
if %errorlevel%==0 (
echo 已存在旧任务,正在删除...
schtasks /delete /tn "%TASK_NAME%" /f >nul
)

REM ============================
REM 计算开始时间(1 分钟后)
REM ============================
for /f "tokens=1-2 delims=:" %%a in ("%TIME%") do (
set HH=%%a
set MM=%%b
)

set /a MM+=1
if %MM% GEQ 60 (
set MM=00
set /a HH+=1
)
if %HH% GEQ 24 set HH=00

set START_TIME=%HH%:%MM%

echo 任务计划开始时间:%START_TIME%
echo.

REM ============================
REM 创建任务计划(SYSTEM)
REM ============================
schtasks /create /f ^
/sc minute /mo 5 ^
/st %START_TIME% ^
/tn "%TASK_NAME%" ^
/tr "%WATCH_BAT%" ^
/ru SYSTEM ^
/rl HIGHEST

echo.
echo =========================================
echo 任务计划创建完成
echo 服务名:%SERVICE_NAME%
echo 任务名:%TASK_NAME%
echo 运行频率:每 5 分钟
echo 权限:SYSTEM
echo 重启后仍然有效,永不过期
echo =========================================
echo.

pause

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions