mirror of
https://github.com/luckyyzh/pi-agent-integrated.git
synced 2026-10-03 02:59:35 +00:00
fix: 计划任务显式允许电池运行(笔记本不插电 Queued 不启动)+ Web 任务总是覆盖注册
This commit is contained in:
@@ -36,20 +36,21 @@ if ([string]::IsNullOrWhiteSpace($publicUrl)) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function Ensure-Tasks {
|
function Ensure-Tasks {
|
||||||
# Web supervisor 任务:必需,自动注册(相对路径,新机器可直接用)
|
# Web supervisor 任务:必需,总是用最新定义覆盖注册(-Force 不中断运行中的实例)
|
||||||
if (-not (Get-ScheduledTask -TaskName $webTaskName -ErrorAction SilentlyContinue)) {
|
Write-Host " 注册/更新计划任务 $webTaskName ..."
|
||||||
Write-Host " 注册计划任务 $webTaskName ..."
|
|
||||||
$supervisorPath = Join-Path $PSScriptRoot 'pi-agent-web-supervisor.ps1'
|
$supervisorPath = Join-Path $PSScriptRoot 'pi-agent-web-supervisor.ps1'
|
||||||
# 单引号拼接避免转义歧义(`\" 不是 PowerShell 转义引号)
|
# 单引号拼接避免转义歧义(`\" 不是 PowerShell 转义引号)
|
||||||
$argument = '-NoLogo -NoProfile -NonInteractive -ExecutionPolicy Bypass -WindowStyle Hidden -File "' + $supervisorPath + '"'
|
$argument = '-NoLogo -NoProfile -NonInteractive -ExecutionPolicy Bypass -WindowStyle Hidden -File "' + $supervisorPath + '"'
|
||||||
$action = New-ScheduledTaskAction -Execute 'powershell.exe' -Argument $argument -WorkingDirectory $projectRoot
|
$action = New-ScheduledTaskAction -Execute 'powershell.exe' -Argument $argument -WorkingDirectory $projectRoot
|
||||||
$trigger = New-ScheduledTaskTrigger -AtLogOn
|
$trigger = New-ScheduledTaskTrigger -AtLogOn
|
||||||
|
# 显式允许电池运行(默认 DisallowStartIfOnBatteries=True 会导致笔记本不插电时任务 Queued 不启动)
|
||||||
$settings = New-ScheduledTaskSettingsSet -StartWhenAvailable `
|
$settings = New-ScheduledTaskSettingsSet -StartWhenAvailable `
|
||||||
-RestartCount 999 -RestartInterval (New-TimeSpan -Minutes 1) `
|
-RestartCount 999 -RestartInterval (New-TimeSpan -Minutes 1) `
|
||||||
-ExecutionTimeLimit ([TimeSpan]::Zero)
|
-ExecutionTimeLimit ([TimeSpan]::Zero) `
|
||||||
|
-DisallowStartIfOnBatteries:$false -StopIfGoingOnBatteries:$false
|
||||||
|
# -Force 总是用最新定义覆盖(含设置修正),不中断已运行实例
|
||||||
Register-ScheduledTask -TaskName $webTaskName -Action $action -Trigger $trigger `
|
Register-ScheduledTask -TaskName $webTaskName -Action $action -Trigger $trigger `
|
||||||
-Settings $settings -Description 'Pi Agent Integrated Web supervisor' -Force | Out-Null
|
-Settings $settings -Description 'Pi Agent Integrated Web supervisor' -Force | Out-Null
|
||||||
}
|
|
||||||
|
|
||||||
# Tunnel 任务:可选,仅在配置了 PI_AGENT_TUNNEL_COMMAND 时注册;-NoTunnel 明确跳过
|
# Tunnel 任务:可选,仅在配置了 PI_AGENT_TUNNEL_COMMAND 时注册;-NoTunnel 明确跳过
|
||||||
if ($NoTunnel) {
|
if ($NoTunnel) {
|
||||||
@@ -67,7 +68,8 @@ function Ensure-Tasks {
|
|||||||
$trigger = New-ScheduledTaskTrigger -AtLogOn
|
$trigger = New-ScheduledTaskTrigger -AtLogOn
|
||||||
$settings = New-ScheduledTaskSettingsSet -StartWhenAvailable `
|
$settings = New-ScheduledTaskSettingsSet -StartWhenAvailable `
|
||||||
-RestartCount 999 -RestartInterval (New-TimeSpan -Minutes 1) `
|
-RestartCount 999 -RestartInterval (New-TimeSpan -Minutes 1) `
|
||||||
-ExecutionTimeLimit ([TimeSpan]::Zero)
|
-ExecutionTimeLimit ([TimeSpan]::Zero) `
|
||||||
|
-DisallowStartIfOnBatteries:$false -StopIfGoingOnBatteries:$false
|
||||||
Register-ScheduledTask -TaskName $tunnelTaskName -Action $action -Trigger $trigger `
|
Register-ScheduledTask -TaskName $tunnelTaskName -Action $action -Trigger $trigger `
|
||||||
-Settings $settings -Description 'Pi Agent Integrated public tunnel' -Force | Out-Null
|
-Settings $settings -Description 'Pi Agent Integrated public tunnel' -Force | Out-Null
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user