WSL의 Distrod에 있는 Archlinux에서 systemd 장치의 ConditionVirtualization을 재정의할 수 없습니다.

WSL의 Distrod에 있는 Archlinux에서 systemd 장치의 ConditionVirtualization을 재정의할 수 없습니다.

WSL 위에 Distrod를 통해 설치된 Archlinux에서 systemd-timesyncd를 시작하려고 합니다. 기본적으로 systemd-timesyncd의 단위 파일에는 가상화된 환경에서 시작하지 못하도록 하는 플래그가 있습니다 ConditionVirtualization=!container. 다음 구성을 사용하여 이를 재정의하려고 합니다.

[root@valentine ~]# systemd-detect-virt
wsl
[root@valentine ~]# cat /etc/systemd/system/systemd-timesyncd.service.d/override.conf
[Unit]
ConditionVirtualization=wsl
[root@valentine ~]# systemctl daemon-reload
[root@valentine ~]# systemctl start systemd-timesyncd.service
[root@valentine ~]# systemctl status systemd-timesyncd.service
○ systemd-timesyncd.service - Network Time Synchronization
     Loaded: loaded (/usr/lib/systemd/system/systemd-timesyncd.service; enabled; preset: enabled)
    Drop-In: /etc/systemd/system/systemd-timesyncd.service.d
             └─override.conf
     Active: inactive (dead)
  Condition: start condition failed at Mon 2023-02-27 10:38:46 CET; 6s ago
             └─ ConditionVirtualization=!container was not met
       Docs: man:systemd-timesyncd.service(8)

Feb 27 10:38:46 valentine systemd[1]: Network Time Synchronization was skipped because of an unmet condition check (ConditionVirtualization=!container).

systemd가 재정의 구성을 선택하는 것처럼 보이지만 재정의 구성 플래그를 사용하지 않는 것 같습니다.

이 문제를 해결하고 가상화된 환경에서 systemd-timesyncd를 실행하는 가장 좋은 방법은 무엇입니까?

답변1

나는 똑같은 문제가 있었고이 답변이것은 나에게 도움이 됩니다. ConditionVirtualization항목 목록이 필요하며 변경하려면 먼저 지워야 합니다 .

나는 sudo systemctl edit systemd-timesyncd삽입된 파일을 생성하기 위해 다음을 사용한 적이 있습니다.

[Unit]
ConditionVirtualization=
ConditionVirtualization=wsl

이제 예상대로 작동합니다.

~ >sudo systemctl status systemd-timesyncd
● systemd-timesyncd.service - Network Time Synchronization
     Loaded: loaded (/etc/systemd/system/systemd-timesyncd.service; enabled; vendor preset: enabled)
    Drop-In: /etc/systemd/system/systemd-timesyncd.service.d
             └─override.conf
     Active: active (running) since Wed 2023-03-01 14:31:05 EST; 1s ago
       Docs: man:systemd-timesyncd.service(8)
   Main PID: 8816 (systemd-timesyn)
     Status: "Initial synchronization to time server 137.184.81.69:123 (0.arch.pool.ntp.org)."
      Tasks: 2 (limit: 19001)
     Memory: 1.4M
     CGroup: /system.slice/systemd-timesyncd.service
             └─8816 /lib/systemd/systemd-timesyncd

Mar 01 14:31:05 gnantel systemd[1]: Starting Network Time Synchronization...
Mar 01 14:31:05 gnantel systemd[1]: Started Network Time Synchronization.
Mar 01 14:31:02 gnantel systemd-timesyncd[8816]: Initial synchronization to time server 137.184.81.69:123 (0.arch.pool.ntp.org).

sudo systemctl daemon-reload또한 안전을 위해 하나 만들었지만 systemctl편집할 때 사용할 필요는 없습니다.

관련 정보