본문 바로가기

WSL2

systemd in wsl2 # System has not been booted with systemd as init system (PID 1). Can't operate.

728x90
반응형

System has not been booted with systemd as init system (PID 1). Can't operate.

Failed to connect to bus: Host is down

 

 

Systemd는 Linux 기반 운영 체제를 위한 시스템 및 서비스 관리자

기본적으로 wsl에서 systemd 지원이 되지 않았었고, 그때문에 wsl에서 systemd와 관련된 설정이 되어 있지 않아 이런 문제가 발생

 

저 같은 경우는 redis를 wsl에서 설치하기 위해 linux에 redis를 설치하는 방법을 참고해서 진행했습니다.설치 후에 redis의 설정 파일에 systemd를 사용하도록 설정을 건드렸는데, 이 이후부터 에러가 발생했습니다.구체적으로는

systemctl status redis.service

위와 같이 systemctl 명령어를 입력하면 위 에러메시지가 발생했습니다.

 

우선... redis 공식 문서에 windows에 설치하는 방법이 나와있고 거기서 보니 systemd를 사용하지 않고 하네요.

항상 공식문서를 먼저 잘 봐야 함을 다시 또 깨닫습니다..

하지만 이미 systemd를 만져서 에러를 생기게 했으니, 추후에 systemd를 사용할 수 있도록 설정을 해보았습니다.

 

systemd 적용

1) linux shell (저의 경우 ubuntu 22.04) 을 열어서 wsl 설정을 다음과 같이 추가합니다.

$ sudo nano /etc/wsl.conf

 

그리고 다음과 같이 설정 추가

[boot]
systemd=true

설정을 저장하고 shell을 닫아줍니다.

 

 

2) Windows Powershell 관리자 권한으로 실행후 아래 명령어 실행

wsl --shutdown

 

3) linux shell 다시 열면 이제 될 예정

systemctl status redis.service

 

* 위와 같이 해도 systemd가 PID1이 아니라며 계속 오류가 나는 경우,

  컴퓨터를 재부팅하고 wsl ubuntu를 shell을 다시 실행하면

  아래 명령어를 통해 리눅스 하위시스템을 설치하라는 안내 문구를 볼 수 있습니다.

wsl.exe --update

 

 위 명령어를 입력해서 설치하고 다시 위의 과정을 반복하니 정상적으로 작동 합니다.

 

이제 wsl로 redis 하러 갑니다~

 

더 자세한 방법 & 출처 : https://beebom.com/how-enable-systemd-wsl-windows-11/

 

How to Enable Systemd For WSL2 in Windows 11

Follow these instructions to enable systemd on Windows Subsystem for Linux in Windows 11. It adds support for Snap, Kubernetes, etc.

beebom.com

 

728x90
반응형