WSL2 자체를 백그라운드로 자동 실행하는 방법
개요
WSL2(Ubuntu 등)는 기본적으로 터미널이 열릴 때만 활성화됩니다. 그러나 Redis, PostgreSQL, Nginx 등 서버를 항상 켜 두려면 WSL을 백그라운드에서 자동으로 실행시키는 설정이 필요합니다.
✅ 1️⃣ Windows 부팅 시 WSL 자동 실행 (작업 스케줄러 이용)
자동화 전에 수동으로 한 번 확인해보세요:
$wslName = "Ubuntu" Start-Process wsl.exe -ArgumentList "-d $wslName -u root bash -c 'service redis-server start'" -WindowStyle Hidden
그다음 상태 확인:
wsl -d Ubuntu -u root bash -c "service redis-server status"
→ active (running)이면 완벽히 성공입니
Windows에서 PowerShell 실행 정책 허용
관리자 권한으로 실행:
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
또는 스케줄러에서 실행할 때 아래 옵션을 넣어야 합니다:
-ExecutionPolicy Bypass
PowerShell 스크립트 파일 만들기
파일 경로 예시
C:\Scripts\wsl_redis_autostart.ps1
파일 내용 예시
# WSL 내부에서 Redis 서버를 자동 실행 $wslName = "Ubuntu" Start-Process wsl.exe -ArgumentList "-d $wslName -u root bash -c 'service redis-server start'" -WindowStyle Hidden
bash -c '...' 구문에서는 **작은따옴표(')**를 사용해야 PowerShell과 WSL 간 인용 오류를 방지할 수 있습니다.
3️⃣ 여러 서비스 자동 실행 예시
$wslName = "Ubuntu" Start-Process wsl.exe -ArgumentList "-d $wslName -u root bash -c 'service redis-server start'" -WindowStyle Hidden Start-Process wsl.exe -ArgumentList "-d $wslName -u root bash -c 'service postgresql start'" -WindowStyle Hidden Start-Process wsl.exe -ArgumentList "-d $wslName -u root bash -c 'service nginx start'" -WindowStyle Hidden
① 작업 스케줄러 열기
Win + R → taskschd.msc 입력 → Enter
② 새 작업 만들기
오른쪽 메뉴 → “작업 만들기(Create Task)” 클릭
③ [일반] 탭 설정
이름: WSL Auto Start
가장 높은 권한으로 실행 체크
④ [트리거] 탭 설정
“시스템 시작 시” 선택 → 확인
⑤ [동작] 탭 설정
새 동작 추가 → 프로그램/스크립트에 다음 입력:
wsl -d Ubuntu -u root bash -c "service redis-server start"
또는 systemd가 켜져 있다면:
wsl -d Ubuntu -u root bash -c "systemctl start redis-server"
⑥ [조건] 탭에서
“전원이 연결되어 있을 때만 실행” 옵션 해제 (선택)
⑦ 확인 후 저장
→ Windows 부팅 시 WSL이 자동으로 실행되며 Redis가 백그라운드에서 구동됩니다.
✅ 2️⃣ WSL을 콘솔 없이 백그라운드 실행시키기
터미널 창 없이 조용히 WSL을 띄우려면 PowerShell에서:
Start-Process wsl.exe -ArgumentList "-d Ubuntu" -WindowStyle Hidden
이를 작업 스케줄러에 등록하면 콘솔 없이 완전한 백그라운드로 실행됩니다.
✅ 3️⃣ systemd로 자동 실행 명령 추가
Ubuntu 내부 설정 파일(/etc/wsl.conf) 수정:
sudo nano /etc/wsl.conf
내용 추가:
[boot] systemd=true command="service redis-server start"
이후 WSL 재시작:
wsl --shutdown wsl
이제 WSL이 실행될 때마다 Redis도 자동으로 시작됩니다.
✅ 4️⃣ PowerShell 스크립트 방식
C:\Scripts\wsl_redis_autostart.ps1 파일을 생성:
$wslName = "Ubuntu" Start-Process wsl.exe -ArgumentList "-d $wslName -u root bash -c 'service redis-server start'" -WindowStyle Hidden
작업 스케줄러에서 Windows 시작 시 이 스크립트를 실행하도록 설정하면 자동 구동됩니다.
✅ 5️⃣ 상태 확인
WSL 실행 중인지 확인:
wsl --list --running
Redis 상태 확인:
wsl -d Ubuntu redis-cli ping
PONG이면 정상 작동 ✅
정리
목적방법
Redis만 자동 실행service redis-server start 작업 스케줄러 등록
WSL 전체 자동 실행Start-Process wsl.exe -WindowStyle Hidden 등록
완전 자동 (Redis 포함)PowerShell + 작업 스케줄러 조합
✅ 추천 조합: 운영 환경이라면 systemd 활성화 + 작업 스케줄러 자동 실행을 함께 설정하는 것이 가장 안정적입니다.
댓글 ( 0)
댓글 남기기