Add autostart watchdog task

This commit is contained in:
2026-09-07 11:08:20 +08:00
parent 5c4745537f
commit 266f29853e
3 changed files with 108 additions and 9 deletions
+16 -9
View File
@@ -4,9 +4,12 @@ setlocal
cd /d "%~dp0"
set "TASK_NAME=DocuTranslate"
set "WATCHDOG_TASK_NAME=DocuTranslateWatchdog"
set "PROJECT_DIR=%~dp0"
set "RUN_BAT=%PROJECT_DIR%run.bat"
set "RUNNER_BAT=%PROJECT_DIR%autostart_runner.bat"
set "WATCHDOG_BAT=%PROJECT_DIR%watchdog.bat"
set "SETUP_PS1=%PROJECT_DIR%setup_autostart.ps1"
set "LOG_DIR=%PROJECT_DIR%logs"
set "LOG_FILE=%LOG_DIR%\autostart.log"
@@ -22,16 +25,19 @@ if not exist "%RUNNER_BAT%" (
exit /b 1
)
if not exist "%LOG_DIR%" mkdir "%LOG_DIR%"
if not exist "%WATCHDOG_BAT%" (
echo [ERROR] Cannot find "%WATCHDOG_BAT%".
pause
exit /b 1
)
REM Create a startup task. Run this file as Administrator.
REM The task runs as SYSTEM, so it can start after reboot before desktop login.
powershell -NoProfile -ExecutionPolicy Bypass -Command ^
"$Action = New-ScheduledTaskAction -Execute 'cmd.exe' -Argument '/c ""%RUNNER_BAT%""';" ^
"$Trigger = New-ScheduledTaskTrigger -AtStartup;" ^
"$Principal = New-ScheduledTaskPrincipal -UserId 'SYSTEM' -RunLevel Highest;" ^
"$Settings = New-ScheduledTaskSettingsSet -StartWhenAvailable -MultipleInstances IgnoreNew;" ^
"Register-ScheduledTask -TaskName '%TASK_NAME%' -Action $Action -Trigger $Trigger -Principal $Principal -Settings $Settings -Force | Out-Null"
if not exist "%SETUP_PS1%" (
echo [ERROR] Cannot find "%SETUP_PS1%".
pause
exit /b 1
)
powershell -NoProfile -ExecutionPolicy Bypass -File "%SETUP_PS1%"
if not "%ERRORLEVEL%"=="0" (
echo.
@@ -42,6 +48,7 @@ if not "%ERRORLEVEL%"=="0" (
echo.
echo [OK] Scheduled task "%TASK_NAME%" has been created.
echo [OK] Scheduled task "%WATCHDOG_TASK_NAME%" has been created.
echo [OK] It will run "%RUNNER_BAT%" at system startup.
echo [OK] Log file: "%LOG_FILE%"
echo.