🛠️TOOL/📄Linux
[Linux] systemctl 명령 에러 System has not been booted with systemd as init system (PID 1).
KangManJoo
2023. 10. 21. 19:04
에러 원인
WSL을 사용하다보면, systemd 명령을 실행했을때 종종 systemd 환경이 아니라는 오류가 발생한다.
원인은 WSL은 루트 시스템 프로세스가 systemd가 아닌 init이기 때문이다.
pstree
루트 시스템 프로세스는 pstree 명령을 통해 확인할 수 있다. pstree 명령어는 실행되고 있는 프로세스들간의 연결구조를 트리형식으로 보여준다.
최근 리눅스 진영은 init에서 systemd로 바뀌는 추세라고 하며, WSL은 아직 그것을 반영하지 못하고 있는 것이라고 한다.(잘 모름)
해결법
cd /
cd etc
sudo vim wsl.conf
우선 위 명령어로, WSL에서 init 시스템 프로세스를 systemd 체계로 바꿔주어야 한다.
[boot]
systemd=true
해당 파일에 위와같이 작성하고 :wq! 로 저장해준다.
wsl --shutdown
wsl
그리고 윈도우 cmd에서 위 명령어로 WSL을 재부팅 후 다시 pstree
로 정상적으로 변경되었는지 확인해준다.
혹시 이렇게 해도 변경이 안된다면, wsl --update로 wsl 버전을 업그레이드한 뒤 다시 재부팅을 해보는 것을 추천한다.
reference