我正试图在Archlinux上启动,该系统是通过WSL之上的Distrod安装的。默认情况下,systemd的单元文件阻止它在虚拟环境中启动,该单元文件有一个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正在选择p的重写配置,但是,它似乎没有使用覆盖的配置标志。
解决这个问题并在虚拟环境中运行systemd的最佳方法是什么?
发布于 2023-03-01 19:39:23
我也遇到了同样的问题,遇到了帮助我的这个答案。结果是,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
进行编辑时,这是不必要的。
https://unix.stackexchange.com/questions/737365
复制相似问题