# instinct: win(Windows)へSSH非対話でStart-Processした常駐プロセスはセッション終了で即死・タスクスケジューラ化が必須

shadowからwin(100.68.221.74)へ `ssh win 'powershell -Command "Start-Process ollama -ArgumentList serve"'` で常駐プロセスを立てても、**SSHセッションが切れると子プロセスが道連れに殺される**(Windows OpenSSH の session 分離 / job object の挙動)。`ollama app.exe`(GUI常駐) も同様にsession 0 isolationで上がらない。実機で3回試行して全てプロセス数0に落ちることを確認(2026-06-17)。

**Why:** SSH非対話セッションの子プロセスは親SSHのjob objectに紐づき、SSH終了でterminateされる。GUIアプリはsession 0分離でそもそも正しく起動しない。

**How to apply:** winで常駐プロセス(Ollama serve等)を立てるなら**タスクスケジューラに登録して `schtasks /Run` で起動**する。タスクはSSHセッションから独立して動き、`/SC ONLOGON` を付ければログオン時自動起動も同時達成できて一石二鳥。手順:
1. 起動内容を bat にして配置(**SSH→PowerShellの多重エスケープ地獄を避けるため base64 で渡してデコード配置**が確実。bat直書きはバックスラッシュ/クォートが壊れる)
2. `schtasks /Create /TN '' /TR /SC ONLOGON /RL HIGHEST /F`
3. `schtasks /Run /TN ''` で即時起動
4. APIで疎通確認(`curl http://:11434/api/version`)

win側の付帯設定: `OLLAMA_HOST=0.0.0.0:11434`(ユーザー環境変数・リモートbind)+`New-NetFirewallRule -LocalPort 11434 -Action Allow`。

**winでの大容量DL**: モデルpullも `Start-Process ollama pull` はsession死で途中で止まる。**shadowからwin Ollama API `/api/pull` を直接叩く**と、常駐中のOllamaサーバ本体がDLを担当しSSHセッションに依存しない(gemma4:12b pullで実証)。

関連: [[multi-model-routing]]のFusion win-GPU動的フォールバック / [[multi-host-deploy]](win操作はPowerShell経由・cp932) / [[instinct-pm2-python-bun-fork]](session/起動方式の落とし穴という点で同種)

---
(migrated from local memory/instinct_win_ssh_startprocess_session_death.md)