WSL2에서 systemctl 사용
systemctl
명령을 실행할 때 다음 오류가 표시됩니다.System has not been booted with systemd as init system (PID 1). Can't operate.
Failed to connect to bus: Host is down
WSL2에서 systemd를 시작하는 genie 도구를 사용합니다.이것을 사용하면 WSL2 내 시스템d의 PID가 1 상태로 시작됩니다.
컨디션
절차.
EPEL 활성화
genie를 설치할 때는 EPEL을 사용해야 합니다.
dnf install epel-release
설치
rpm 가져오기.
wget https://github.com/arkane-systems/genie/releases/download/v2.3/genie-2.3-1.fc34.x86_64.rpm
지니를 설치하다.
dnf install genie-2.3-1.fc34.x86_64.rpm
python3.6등.9로 업데이트합니다.
이렇게 지니를 시작하면 오류가 발생합니다.
# genie -s
Traceback (most recent call last):
File "/usr/lib64/python3.6/runpy.py", line 193, in _run_module_as_main
"__main__", mod_spec)
File "/usr/lib64/python3.6/runpy.py", line 85, in _run_code
exec(code, run_globals)
File "/usr/lib/genie/genie/__main__.py", line 904, in <module>
File "/usr/lib/genie/genie/__main__.py", line 889, in entrypoint
File "/usr/lib/genie/genie/__main__.py", line 692, in do_shell
File "/usr/lib/genie/genie/__main__.py", line 399, in pre_systemd_action_checks
File "/usr/lib/genie/genie/__main__.py", line 196, in get_systemd_state
File "/usr/lib64/python3.6/subprocess.py", line 423, in run
with Popen(*popenargs, **kwargs) as process:
TypeError: __init__() got an unexpected keyword argument 'capture_output'
genie를 설치하면python도 설치되지만 이 버전은 3.6으로 오류가 발생합니다.# python3 --version
Python 3.6.8
오류를 없애기 위해python을 3.7 이상으로 업그레이드해야 합니다.Python3.설치하다
dnf install python39
기호 링크를 수정합니다.
rm -rf /usr/bin/python3
ln -s /usr/bin/python3.9 /usr/bin/python3
rm -rf /usr/bin/pip3
ln -s /usr/bin/pip3.9 /usr/bin/pip3
rm -rf /usr/bin/pip-3
ln -s /usr/bin/pip-3.9 /usr/bin/pip-3
psutil 설치
Python을 업그레이드하면 오류가 계속 발생합니다.
# genie -s
Traceback (most recent call last):
File "/usr/lib64/python3.9/runpy.py", line 197, in _run_module_as_main
return _run_code(code, main_globals, None,
File "/usr/lib64/python3.9/runpy.py", line 87, in _run_code
exec(code, run_globals)
File "/usr/lib/genie/genie/__main__.py", line 14, in <module>
ModuleNotFoundError: No module named 'psutil'
오류 알림에 따라 pstil을 설치합니다.psutil을 설치합니다.
python3 -m pip install psutil
시작
이것으로 끝내고 지니를 시작합니다.
genie -s
를 시작하면 시스템ctl을 실행하면 실행되었음을 알 수 있습니다.# systemctl status
● DESKTOP-ODH2FE5-wsl
State: running
Jobs: 0 queued
Failed: 0 units
Since: Tue 2022-04-05 17:17:26 JST; 5s ago
CGroup: /
├─init.scope
│ └─1 systemd
└─system.slice
├─systemd-journald.service
│ └─22 /usr/lib/systemd/systemd-journald
├─systemd-machined.service
│ └─33 /usr/lib/systemd/systemd-machined
├─system-container\x2dshell.slice
│ └─[email protected]
│ ├─34 /bin/bash -l
│ ├─35 (sd-pam)
│ ├─51 systemctl status
│ └─52 (pager)
└─dbus.service
└─27 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation --syslog-only
총결산
나 이거 써도 돼.
또한 시작할 때 매번 운행
genie -s
을 원하기 때문에 아래 사이트를 참고하여 시도할 수 없습니다.내 생각에는 OS가 다른 것 같지만, 아직까지는 해결할 수 없다.
따라서 매번 실행해야 한다.
Reference
이 문제에 관하여(WSL2에서 systemctl 사용), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/km1992/articles/4dc74aa582be06텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)