# NSSM 자동 시작 설정 (SP-9) Windows AI 머신 부팅 시 ai_trade(트레이딩) + WSL2 Docker(render workers + task-watcher) 자동 시작. ## 1. NSSM 다운로드 https://nssm.cc/download → nssm-2.24.zip → `C:\nssm\nssm.exe` 배치 (또는 PATH 등록). ## 2. ai_trade (Native Python, HIGH priority) ⚠️ spec의 signal_v2는 ai_trade로 rename됨. 경로/포트 확인. ```powershell # 관리자 PowerShell C:\nssm\nssm.exe install ai_trade "C:\Python312\python.exe" "-m uvicorn main:app --host 0.0.0.0 --port 8001" C:\nssm\nssm.exe set ai_trade AppDirectory "C:\Users\jaeoh\Desktop\workspace\web-ai\ai_trade" C:\nssm\nssm.exe set ai_trade Priority HIGH_PRIORITY_CLASS C:\nssm\nssm.exe set ai_trade Start SERVICE_AUTO_START C:\nssm\nssm.exe set ai_trade AppStdout "C:\Users\jaeoh\nssm-logs\ai_trade.log" C:\nssm\nssm.exe set ai_trade AppStderr "C:\Users\jaeoh\nssm-logs\ai_trade.log" ``` (ai_trade의 실제 진입점이 main:app + port 8001인지 확인. 다르면 조정.) ## 3. WSL2 Docker (NORMAL priority — render workers + task-watcher) ```powershell C:\nssm\nssm.exe install wsl_docker "C:\Windows\System32\wsl.exe" "-d Ubuntu-24.04 -- sh -c 'sudo service docker start && cd /workspace/web-ai/services && docker compose up -d'" C:\nssm\nssm.exe set wsl_docker Priority NORMAL_PRIORITY_CLASS C:\nssm\nssm.exe set wsl_docker Start SERVICE_AUTO_START C:\nssm\nssm.exe set wsl_docker AppStdout "C:\Users\jaeoh\nssm-logs\wsl_docker.log" ``` ⚠️ 변경점: Ubuntu-22.04 → **Ubuntu-24.04**, web-ai-services → **web-ai/services**. WSL 경로는 박재오 WSL 마운트 기준 (`/workspace`가 web-ai에 매핑되어 있으면 그대로, 아니면 `/mnt/c/Users/jaeoh/Desktop/workspace/web-ai/services`). `sudo service docker start`가 비밀번호 요구하면 sudoers에 NOPASSWD 추가: ```bash # WSL2 안 echo "$USER ALL=(ALL) NOPASSWD: /usr/sbin/service docker start" | sudo tee /etc/sudoers.d/docker-start ``` ## 4. 서비스 시작 + 확인 ```powershell C:\nssm\nssm.exe start ai_trade C:\nssm\nssm.exe start wsl_docker # 상태 확인 C:\nssm\nssm.exe status ai_trade C:\nssm\nssm.exe status wsl_docker sc query ai_trade ``` ## 5. 검증 ```powershell # ai_trade curl http://localhost:8001/health # 또는 ai_trade의 실제 health endpoint # WSL2 docker 컨테이너 (재부팅 후 자동 시작 확인) wsl -d Ubuntu-24.04 -- docker ps # insta-render, music-render, video-render, task-watcher 4개 Up 확인 ``` ## 6. 재부팅 테스트 Windows 재부팅 → 로그인 → 수동 조작 없이: - ai_trade 서비스 자동 시작 (HIGH priority) - WSL2 + Docker + 4 컨테이너 자동 시작 (NORMAL priority) - task-watcher가 trading window에 queue:paused 토글 시작 ## task-watcher 동작 확인 ```bash # WSL2 docker logs task-watcher --tail 20 # 기대: "task-watcher started" + mode 전환 로그 (trading/free) # Redis 큐 상태 (NAS 또는 LAN) docker exec redis redis-cli GET queue:paused # 트레이딩 시간대(평일 07:00-16:30): "1" # 그 외: (nil) ```