1. 서론
회사에서 폐쇄망 운영 환경의 SI 사업에 투입되게 되었다. 운영 환경에는 서버가 총 4대(Rocky-Linux 9.5 3대, Windows 11 pro 1대) 가 있고, 그 중 Windows 11 pro 서버는 모니터링 서버로 `SpringBoot + Thymeleaf` 웹, `PostgreSQL DB`, `RabbitMQ`, 그 외 기타 WAS 가 Docker Container 로 구동되고 있다.
환경 구축 및 배포 후 테스트를 정상적으로 마쳤다. 하지만 다음날 출근해보니 모든 서버가 죽어있었다.

확인해보니 `WSL` 상태가 Stopped 로 되어 있었다. 만약 서버를 재부팅할 경우 WSL 을 수동으로 켜주지 않는 이상 WSL 상에 있는 Docker Container 가 구동할 수 없는 문제가 발생한 것이였다. 물론 수동으로 하면 되지만, 개발자가 아닌 사용자 입장에서 번거로운 일이다. 'Windows 가 부팅 할 때 같이 켜지면 안되나?' 라는 의문으로 시작하여 해결한 내용을 기술하였다.
2. 본론
wsl 은 pc 가 꺼지면 자동으로 시작되지 않기 때문에 부팅 후 자동으로 실행하는 스크립트를 실행시켜야 한다.
힌트는 https://wikidocs.net/219903 에서 얻을 수 있었다.
다만, 필자의 경우 작업 스케줄러에 등록하는 방법은 성공하지 못했다. 해당 글에서 'vbs와 Windows 작업 스케줄러를 이용' 한 방법으론 성공하지 못했다고 한다. 필자의 경우 vbs (VB스크립트) 를 작성하여 `Windows 시작 프로그램` 에 등록하는 방법으로 성공하였다.
2.1. vbs 작성
VBS(Visual Basic Script) 는 Microsoft 가 만든 `Windows 운영체제 전용 자동화 스크립트` 이다. 리눅스에서의 `쉘 스크립트(.sh)` 와 비슷하다. 이 스크립트를 작성하여 시작프로그램으로 등록해두면 스크립트에 작성된 명령어를 실행한다.
윈도우 키 + `R` 을 눌러 `shell:startup (시작 프로그램 파일 탐색기)` 을 연다.

해당 폴더에 처음엔 txt 파일로 생성하여 WSL 구동 스크립트를 기입한다.
# Windows Script Host Shell 도구를 불러옴
Set WshShell = CreateObject("WScript.Shell")
# wsl 실행 명령을 실행하되, 0 을 붙여 백그라운드로 실행
# 이때 Ubuntu-22.04 은 실제 WSL 설치된 리눅스 배포판 명을 입력
WshShell.Run "wsl.exe -d Ubuntu-22.04", 0
# 메모리 해제
Set WshShell = Nothing

이후 `.txt` > `.vbs` 로 변경해준다.

이후 재부팅하여 테스트 해보면 자동으로 WSL 이 구동중인걸 확인할 수 있다.

'dev > se' 카테고리의 다른 글
| [Docker] Windows 11 폐쇄망 환경 Docker 설치 (Docker Desktop x) (0) | 2026.01.03 |
|---|---|
| [Nginx] /etc/nginx/conf.d/default.conf 404 에러 (0) | 2025.12.22 |
| [VMWare] VMWare 프리징 및 부팅 속도 저하 해결 (1) | 2025.01.05 |
| [Dev] VMWare 자체 서버 구축 (1) | 2024.12.04 |
