首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >无法覆盖系统单元的ConditionVirtualization在WSL上的Archlinux上

无法覆盖系统单元的ConditionVirtualization在WSL上的Archlinux上
EN

Unix & Linux用户
提问于 2023-02-27 12:21:32
回答 1查看 177关注 0票数 0

我正试图在Archlinux上启动,该系统是通过WSL之上的Distrod安装的。默认情况下,systemd的单元文件阻止它在虚拟环境中启动,该单元文件有一个ConditionVirtualization=!container标志。我试图用以下配置覆盖这一配置:

代码语言:javascript
运行
复制
[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的最佳方法是什么?

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2023-03-01 19:39:23

我也遇到了同样的问题,遇到了帮助我的这个答案。结果是,ConditionVirtualization接受一个条目列表,必须清除后才能更改。

我使用sudo systemctl edit systemd-timesyncd创建具有以下内容的插入文件:

代码语言:javascript
运行
复制
[Unit]
ConditionVirtualization=
ConditionVirtualization=wsl

现在,它如预期的那样工作:

代码语言:javascript
运行
复制
~ >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进行编辑时,这是不必要的。

票数 5
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/737365

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档