WSL2 터미널 종료 시 20초 후 멈추는 현상, PowerShell 백그라운드 실행으로 해결
핵심 내용
WSL2 터미널 창을 닫으면 약 20초 후 서비스가 중단되는 현상을 PowerShell 백그라운드 실행 방식으로 해결했다.
자세히 보기
WSL2 버전 업데이트와 도커 환경 문제
넷마블 기술관리팀과 아키텍처최적화팀은 WSL2 기반 도커 개발 환경에서 발생한 문제를 공유했다. 기존에 사용하던 배치 파일이 실행되지 않거나 nohup.out 파일명 변경 시에도 동작하지 않는 현상이 발생했다. 이는 WSL 버전 업데이트로 인한 차이 때문으로 분석되었다. 구버전(윈도우 기본 구성)과 신버전(Microsoft Store 설치) 간에 wsl.exe 및 리눅스 커널 버전이 상이하며, 도커 데몬 호스트 설정은 커널 버전 5.15 이후부터 지원된다.
터미널 종료 시 WSL 상태 변경 현상
WSL 접속 창을 닫으면 약 20초 후 WSL 상태가 Running에서 Stopped로 변경되는 현상이 발생했다. 이는 윈도우 업데이트 이후 나타난 현상으로, NGINX나 APACHE 등 웹서버가 실행 중일 때는 예외적으로 Running 상태를 유지하지만 일반적인 도커 환경에서는 서비스가 중단되었다. nohup 명령어와 &를 함께 사용해 백그라운드 실행을 시도해도 WSL은 여전히 약 20초 후 꺼지는 문제가 해결되지 않았다.
PowerShell 백그라운드 실행을 통한 해결
핵심 해결책은 WSL 실행 창 자체를 백그라운드에 유지하는 것이다. 파워셸의 start-process 명령어와 -WindowStyle Hidden 옵션을 사용하여 WSL을 숨겨진 창으로 실행하면 터미널을 닫아도 서비스가 지속된다. 최종 배치 파일에서는 netsh interface portproxy 설정 후 마지막 줄에 powershell.exe -Command "start-process wsl.exe -WindowStyle Hidden"을 추가하여 nohup을 대체했다. 이 방식을 통해 윈도우에서 도커 데몬에 접근할 때 터미널 창 유지 없이 안정적인 개발 환경을 구성할 수 있다.
이 한국어 요약은 AI가 자동으로 만들었습니다. 원문의 주장과 맥락은 원문에서 확인해 주세요. 저작권은 원저작자에게 있습니다.