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/
'WSL2' 카테고리의 다른 글
WSL2 memory 조정하기 # .configwsl # 리소스 # Vmmem, VmmemWSL (0) | 2023.01.10 |
---|---|
기본 shell 설정이 풀리는 문제 # pyenv-win (0) | 2022.12.23 |