wsl 下执行 systemctl 报错:Failed to get D-Bus connection: Operation not permitted

2024-07-21 01:31:47 补充

经过一系列查阅,关键词 wsl bad performance , 虚拟机启动慢可能是因为systemd 的启动项过多或耗时长。通过 dmesg 可以打印一些系统的启动信息,可以看到:

[    1.215065] systemd-journald[59]: Received request to flush runtime journal from PID 1
[    8.943712] WSL (2) ERROR: WaitForBootProcess:3342: /sbin/init failed to start within 10000
[    8.943716] ms
[    8.951567] WSL (2): Creating login session for root
[   48.061496] hv_balloon: Max. dynamic memory size: 4096 MB

帖子里有一个方法,sudo apt remove acpid

但通过 systemctl list-unit-files |grep acpi,发现无该应用,由于不确定什么 systemd 服务可以关闭或删除,故作罢。

sshd 启动慢也是一样的原因,有一次笔者启动虚拟机后过了几分钟后才启动 sshd,结果瞬间就启动了,另外在关闭 sshd 后,也能马上启动完成,因此怀疑不是 SSH 的问题,转而怀疑是 systemctl 的问题。

还好 systemd 的启动信息也可以查看的,然而:

# systemd-analyze time
Bootup is not yet finished. Please try again later.

过了几分钟后再次尝试:

# systemd-analyze time
Startup finished in 5min 871ms (userspace) = 5min 871ms
# systemd-analyze blame
      5min 239ms network.service
           234ms tuned.service
           214ms postfix.service
           185ms dev-sdc.device
           131ms systemd-vconsole-setup.service
            63ms polkit.service
            62ms systemd-remount-fs.service

发现 network.service 这个应用耗时竟有 5min,其它的都是 ms 级别的,搜索解决方法,如下

# systemctl edit network.service

执行后会打开一个文件,添加以下内容:

[Service]
TimeoutStartSec=10sec

重启 wsl ,此时 sshd 已经是秒开的了,至于虚拟机启动慢,相比起 5min,

便无所谓了。

======================================

2024-07-20 04:18:38 补充。

使能 systemd 选项后,虚拟机开机很慢,约 10s

而且启动 sshd 也很慢,要等几分钟。

取消使能 systemd 后开机速度正常,当然 sshd 也不能启动了。

======================================

以下为正文

======================================

启动 sshd 时,出现以下错误。

#     systemctl start sshd.service
Failed to get D-Bus connection: Operation not permitted

根据微软文档介绍,启用systemd必须满足以下条件

1. 确保 WSL 版本为 0.67.6 或更高版本。   2. 添加 /etc/wsl.conf 配置文件,设置systemd为true。

笔者这里是 wsl2,第一步已完成。

然后执行以下:

#  echo -e "[boot]\nsystemd=true" | sudo tee -a /etc/wsl.conf

文件 wsl.conf 可能不存在,可以直接创建。

# echo -e "[boot]\nsystemd=true" | sudo tee -a /etc/wsl.conf
env: Files: No such file or directory

追加内容如下:

[boot]
systemd=true

以上。

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值