@cocorograph/hub-agent 0.6.78 → 0.6.79
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/scripts/install.ps1 +33 -5
package/package.json
CHANGED
package/scripts/install.ps1
CHANGED
|
@@ -237,15 +237,33 @@ function Set-Systemd($distro) {
|
|
|
237
237
|
}
|
|
238
238
|
}
|
|
239
239
|
|
|
240
|
-
# Register a logon task that
|
|
240
|
+
# Register a logon task that keeps the distro ALIVE (so its systemd --user
|
|
241
|
+
# hub-agent stays online).
|
|
242
|
+
#
|
|
243
|
+
# 旧実装は `wsl ... /bin/true` で distro を一瞬起こすだけだった。これだと WSL2 の
|
|
244
|
+
# アイドルシャットダウンが数十秒で distro ごと畳んでしまい (agent.log に
|
|
245
|
+
# `SIGTERM shutting down` が出て `wsl -l -v` が Stopped になる)、hub-agent も停止して
|
|
246
|
+
# オフラインに戻る。systemd --user + linger は「distro が起動している間」しか効かない
|
|
247
|
+
# ため、distro 自体を起こし続ける常駐プロセスが必要。
|
|
248
|
+
#
|
|
249
|
+
# 対策: ログオン中ずっと `sleep infinity` を WSL 内で走らせて distro を起動状態に保つ。
|
|
250
|
+
# 併せて hub-agent.service を start しておく (enable + linger 済みなら冪等)。
|
|
241
251
|
function Register-BootTask($distro, $user) {
|
|
242
|
-
Write-Step "Registering autostart on logon (Task Scheduler)"
|
|
243
|
-
|
|
252
|
+
Write-Step "Registering autostart on logon (Task Scheduler, keep-alive)"
|
|
253
|
+
# distro を起動し続ける keep-alive。systemctl start は冪等 (既に active なら no-op)。
|
|
254
|
+
$keepalive = "systemctl --user start hub-agent.service 2>/dev/null; exec sleep infinity"
|
|
255
|
+
$action = New-ScheduledTaskAction -Execute "wsl.exe" `
|
|
256
|
+
-Argument "-d $distro -u $user -- bash -lc `"$keepalive`""
|
|
244
257
|
$trigger = New-ScheduledTaskTrigger -AtLogOn
|
|
245
|
-
|
|
258
|
+
# ExecutionTimeLimit=0 で無制限 (既定 72h で停止されると distro が落ちる)。
|
|
259
|
+
# keep-alive が万一終了したら 1 分後に最大 3 回まで再起動。多重起動は抑止。
|
|
260
|
+
$set = New-ScheduledTaskSettingsSet -AllowStartIfOnBatteries -DontStopIfGoingOnBatteries `
|
|
261
|
+
-StartWhenAvailable -MultipleInstances IgnoreNew `
|
|
262
|
+
-RestartInterval (New-TimeSpan -Minutes 1) -RestartCount 3 `
|
|
263
|
+
-ExecutionTimeLimit (New-TimeSpan -Seconds 0)
|
|
246
264
|
Register-ScheduledTask -TaskName $TASK_NAME -Action $action -Trigger $trigger -Settings $set `
|
|
247
265
|
-RunLevel Limited -Force | Out-Null
|
|
248
|
-
Write-Ok "Logon task '$TASK_NAME' registered"
|
|
266
|
+
Write-Ok "Logon task '$TASK_NAME' registered (keeps WSL distro alive)"
|
|
249
267
|
}
|
|
250
268
|
|
|
251
269
|
# Run the existing install.sh inside WSL.
|
|
@@ -315,6 +333,16 @@ function Main {
|
|
|
315
333
|
# --- autostart ---
|
|
316
334
|
Register-BootTask $distro $user
|
|
317
335
|
|
|
336
|
+
# セットアップ完了時点でオンライン化まで完結させる: keep-alive タスクを今すぐ起動し、
|
|
337
|
+
# distro を起動状態に保つ (再ログオンを待たずに hub-agent が常駐する)。
|
|
338
|
+
Write-Step "Starting keep-alive now (online without re-logon)"
|
|
339
|
+
try {
|
|
340
|
+
Start-ScheduledTask -TaskName $TASK_NAME
|
|
341
|
+
Write-Ok "Keep-alive started; hub-agent should come online shortly"
|
|
342
|
+
} catch {
|
|
343
|
+
Write-Warn "Start-ScheduledTask failed ($($_.Exception.Message)); ログオンし直すと起動します"
|
|
344
|
+
}
|
|
345
|
+
|
|
318
346
|
Write-Host ""
|
|
319
347
|
Write-Ok "Setup complete. Check the online status in the Hub UI:"
|
|
320
348
|
Write-Host " https://hub.cocorograph.com/user/cockpit/agents" -ForegroundColor Cyan
|