WSL2 에서 systemd & systemcl 사용

2022.09.22 >> WSL에서도 systemd를 공식 지원할 예정이라고 합니다. 
관련 링크) https://devblogs.microsoft.com/commandline/systemd-support-is-now-available-in-wsl

WSL2를 사용하다보면 systemcl, 또는 systemd를 사용하여 현재 프로세스 status를 확인하려할 때가 있는데, WSL2에서는 아직 systemcl, systemd를 공식적으로 지원하고 있지않다. 하지만 구글링을 조금만 해보면 가이드가 하나 나오는데 이를 따라하면 WSL2환경에서도 systemcl & systemd를 사용할 수 있다. 

 

WSL 2 - Enabling systemd

WSL 2 - Enabling systemd. GitHub Gist: instantly share code, notes, and snippets.

gist.github.com

 

위의 가이드를 따라하고 나면 systemcl & systemd를 사용할 수 있다.

하지만 위의 가이드 대로만 하면 매번 윈도우 터미널 또는 윈도우 파워쉘을 키고, 다음과 같은 명령어를 입력해야한다.

wsl --shutdown //wsl을 끈다.
wsl genie -s // systemd가 포함된 버전으로 wsl을 킨다.

내가 성격이 급한건지, 아니면 귀찮음이 가득한 개발자인지 모르겠다.

근데 매번 저 명령어를 입력하는 건 좋아하는 사람이 없을 거 같다. 그래서 Windows Termianl을 사용한다면

+를 눌러서 설정 클릭

다음과 같이 설정페이지에 들어가서 사이드바의 프로필에 새로운 프로필을 추가한다.

새 프로필을 추가할 때,  명령줄 부분에 아래와 같이 넣고 저장하면 된다.

wsl.exe -d Ubuntu-20.04 genie -s

사이드바의 시작에서 기본프로필 세팅

시작 부분에서 기본 프로필을 전환해주는 것도 잊지말자.

이제 Windows Terminal을 종료후 재시작해서 systemctl 관련 명령어를 치면 다음과 같이 깔끔하게 나타날것이다.

systemctl이 status nginx가 정상적으로 출력된다