Ziz*_*ncs 2 arch-linux systemd windows-subsystem-for-linux systemd-timesyncd
我正在尝试在 Archlinux 上启动 systemd-timesyncd,它是通过 Distrod 安装在 WSL 之上的。默认情况下,systemd-timesyncd 的单元文件会阻止它在虚拟化环境中启动,该单元文件有一个ConditionVirtualization=!container标志。我正在尝试使用以下配置来覆盖它:
[root@valentine ~]# systemd-detect-virt\nwsl\n[root@valentine ~]# cat /etc/systemd/system/systemd-timesyncd.service.d/override.conf\n[Unit]\nConditionVirtualization=wsl\n[root@valentine ~]# systemctl daemon-reload\n[root@valentine ~]# systemctl start systemd-timesyncd.service\n[root@valentine ~]# systemctl status systemd-timesyncd.service\n\xe2\x97\x8b systemd-timesyncd.service - Network Time Synchronization\n Loaded: loaded (/usr/lib/systemd/system/systemd-timesyncd.service; enabled; preset: enabled)\n Drop-In: /etc/systemd/system/systemd-timesyncd.service.d\n \xe2\x94\x94\xe2\x94\x80override.conf\n Active: inactive (dead)\n Condition: start condition failed at Mon 2023-02-27 10:38:46 CET; 6s ago\n \xe2\x94\x94\xe2\x94\x80 ConditionVirtualization=!container was not met\n Docs: man:systemd-timesyncd.service(8)\n\nFeb 27 10:38:46 valentine systemd[1]: Network Time Synchronization was skipped because of an unmet condition check (ConditionVirtualization=!container).\nRun Code Online (Sandbox Code Playgroud)\n看起来 systemd 正在选择覆盖配置,但是,它似乎没有使用覆盖配置标志。
\n解决此问题并使 systemd-timesyncd 在虚拟化环境中运行的最佳方法是什么?
\n小智 9
我遇到了完全相同的问题,并发现了这个对我有帮助的答案。事实证明,它ConditionVirtualization需要一个条目列表,并且必须先清除它才能更改。
我曾经sudo systemctl edit systemd-timesyncd使用以下内容创建嵌入式文件:
[Unit]\nConditionVirtualization=\nConditionVirtualization=wsl\nRun Code Online (Sandbox Code Playgroud)\n现在它按预期工作:
\n~ >sudo systemctl status systemd-timesyncd\n\xe2\x97\x8f systemd-timesyncd.service - Network Time Synchronization\n Loaded: loaded (/etc/systemd/system/systemd-timesyncd.service; enabled; vendor preset: enabled)\n Drop-In: /etc/systemd/system/systemd-timesyncd.service.d\n \xe2\x94\x94\xe2\x94\x80override.conf\n Active: active (running) since Wed 2023-03-01 14:31:05 EST; 1s ago\n Docs: man:systemd-timesyncd.service(8)\n Main PID: 8816 (systemd-timesyn)\n Status: "Initial synchronization to time server 137.184.81.69:123 (0.arch.pool.ntp.org)."\n Tasks: 2 (limit: 19001)\n Memory: 1.4M\n CGroup: /system.slice/systemd-timesyncd.service\n \xe2\x94\x94\xe2\x94\x808816 /lib/systemd/systemd-timesyncd\n\nMar 01 14:31:05 gnantel systemd[1]: Starting Network Time Synchronization...\nMar 01 14:31:05 gnantel systemd[1]: Started Network Time Synchronization.\nMar 01 14:31:02 gnantel systemd-timesyncd[8816]: Initial synchronization to time server 137.184.81.69:123 (0.arch.pool.ntp.org).\nRun Code Online (Sandbox Code Playgroud)\nsudo systemctl daemon-reload为了安全起见,我也做了一个,但在编辑时systemctl不需要使用它。