만쥬의 개발일기
article thumbnail

1. 에러 원인

WSL을 사용하다보면, systemd 명령을 실행했을때 종종 systemd 환경이 아니라는 오류가 발생한다.

원인은 WSL은 루트 시스템 프로세스가 systemd가 아닌 init이기 때문이다.

<code />
pstree

루트 시스템 프로세스는 pstree 명령을 통해 확인할 수 있다. pstree 명령어는 실행되고 있는 프로세스들간의 연결구조를 트리형식으로 보여준다.

최근 리눅스 진영은 init에서 systemd로 바뀌는 추세라고 하며, WSL은 아직 그것을 반영하지 못하고 있는 것이라고 한다.(잘 모름)

2. 해결법

<code />
cd / cd etc sudo vim wsl.conf

우선 위 명령어로, WSL에서 init 시스템 프로세스를 systemd 체계로 바꿔주어야 한다.

<code />
[boot] systemd=true

해당 파일에 위와같이 작성하고 :wq! 로 저장해준다.

<bash />
wsl --shutdown wsl

그리고 윈도우 cmd에서 위 명령어로 WSL을 재부팅 후 다시 pstree로 정상적으로 변경되었는지 확인해준다.

혹시 이렇게 해도 변경이 안된다면, wsl --update로 wsl 버전을 업그레이드한 뒤 다시 재부팅을 해보는 것을 추천한다.

 

reference

profile

만쥬의 개발일기

@KangManJoo

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!