问题描述

笔者通过WSL安装了CentOS7系统,刚开始一切都很顺利。当执行systemctl命令时,却意外报错:Failed to get D-Bus connection: Operation not permitted,让小白的我不知所措。经过一番折腾,笔者终于找到了正确的解决办法——原来它和systemd有关。

问题原因

我们先来了解下systemd是什么东东?它并不是一个命令,而是一组命令,涉及到系统管理的各个方面。根据Linux惯例,字母d是守护进程 (daemon) 的缩写,systemd这个名字的含义就是要守护整个系统。initsystemd都是Linux的守护进程,  但后者功能更强大,已取代init (initd的PID是0) 成为Linux系统的第一个进程 (systemd的PID是1)。下面是systemd的架构图:

systemctlsystemd的主命令,用于管理系统。除此之外,还有hostnamectl(查看当前主机信息)、timedatectl(查看当前时区设置)、loginctl(查看当前登录的用户)等命令。

为什么CentOS在WSL里会出现上述错误呢?想必你也猜到一半了,没错,就是systemd没有启用引起的(WSL2现已支持)。Ubuntu发行版默认安装已启用systemd,而其它Linux发行版上默认还是init,需要手动启用才行。可以通过以下命令来查看:

#  ps --no-headers -o comm 1
init(CentOS7)

解决办法

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

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

我们先执行命令: wsl --version,检测下当前WSL的版本,显示结果如下:

若非上述结果,说明你的WSL版本过低,需要执行WSL更新命令:  wsl --update

更新完之后,然后给CentOS添加wsl.conf配置文件(设置systemd为启用),可通过下面命令来完成:

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

至此,systemd已经启用。

重新进入WSL,我们再执行systemctl命令看下,这回不再报错!


参考资料:

使用 systemd 通过 WSL 管理 Linux 服务 | Microsoft Learn

Systemd 入门教程:命令篇 - 阮一峰的网络日志 (ruanyifeng.com)

解决WSL执行systemctl命令报错:Failed to get D-Bus connection的更多相关文章

  1. Python3安装Celery模块后执行Celery命令报错

    1 Python3安装Celery模块后执行Celery命令报错 pip3 install celery # 安装正常,但是执行celery 命令的时候提示没有_ssl模块什么的 手动在Python解 ...

  2. Mac 升级后idea执行git命令报错xcrun: error: invalid active developer path的解决办法

    报错 xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun ...

  3. 执行Docker命令报错解决办法

    shim error: docker-runc not installed on system   服务器重启以后,执行docker命令报以上错误,解决办法如下: cd /usr/libexec/do ...

  4. Jenkins中执行docker命令报错

    Cannot connect to the Docker daemon. Is the docker daemon running on this host?   在配置Jenkins从Gitlab自 ...

  5. 关于ubuntu上执行错误命令报错

    Sorry, command-not-found has crashed! 新安装了一台ubuntu server 安装时用中文安装的,之后命令行下各种乱码,最后也不知道是修改哪里造成的 每次执行一次 ...

  6. 安装atlas后执行hive命令报错

    在集群中安装atlas,在安装atlas的节点上执行hive -e "show databases;" 正常,但是在集群中其他节点上执行hive -e "show dat ...

  7. ubuntu 执行apt-get update报错Failed to fetch

    在ubuntu下执行sudo apt-get update时,经常会遇到报错: Err http://security.ubuntu.com precise-security InRelease Er ...

  8. 执行yum命令报错"Unable to connect to Registration Management Service"

    问题描述 linux上执行yum相关命令时,报无法连接到注册管理服务的错误,具体报错信息如下 [root@aijihe-core-zy-2-3 ~]# yum install gcc Loaded p ...

  9. 执行openstack命令报错【You must provide a username via either -...】

    openstack环境搭建好后,openstack的服务都启动了,当执行openstack命令时如nova service list报如下错误 You must provide a username ...

  10. hbase shell中执行list命令报错:ERROR: org.apache.hadoop.hbase.PleaseHoldException: Master is initializing

    问题描述: 今天在测试环境中,搭建hbase环境,执行list命令之后,报错: hbase(main):001:0> list TABLE ERROR: org.apache.hadoop.hb ...

随机推荐

  1. 2023-05-09:石子游戏中,爱丽丝和鲍勃轮流进行自己的回合,爱丽丝先开始 。 有 n 块石子排成一排。 每个玩家的回合中,可以从行中 移除 最左边的石头或最右边的石头, 并获得与该行中剩余石头值

    2023-05-09:石子游戏中,爱丽丝和鲍勃轮流进行自己的回合,爱丽丝先开始 . 有 n 块石子排成一排. 每个玩家的回合中,可以从行中 移除 最左边的石头或最右边的石头, 并获得与该行中剩余石头值 ...

  2. 2020-11-08:在Mysql中,三个字段A、B、C的联合索引,查询条件是B、A、C,会用到索引吗?

    福哥答案2020-11-08: 会走索引,原因是mysql优化器会把BAC优化成ABC. CREATE TABLE `t_testabc2` ( `id` int(11) NOT NULL AUTO_ ...

  3. 人手一个 Midjourney,StableStudio 重磅开源!

    人手一个 Midjourney,StableStudio 重磅开源! Stability AI 公司在上个月 19 号推出了 Alpha 版本 StableLM 大语言模型,包含了 30 亿和 70 ...

  4. 1.1. Java简介与安装

    Java简介 Java是一种广泛使用的计算机编程语言,由James Gosling和他的团队在Sun Microsystems公司开发,于1995年首次发布.Java的设计理念是"一次编写, ...

  5. 智慧饮水系统_Android客户端

    智慧饮水系统(又名:水牛 APP) 1.介绍 该项目基于 Rfid-RC522.ESP-32 进行下位机开发,硬件模块 Rfid-RC522 主要读取用户的卡号,ESP32 单片机通过 WiFi 模块 ...

  6. .Net全网最简RabbitMQ操作【强烈推荐】

    [前言] 本文自1年前的1.0版本推出以来,已被业界大量科技公司采用.同时也得到了.Net圈内多位大佬的关注+推荐,文章也被多家顶级.Net/C#公众号转载. 现在更新到了7.0版本,更好的服务各位. ...

  7. 【python基础】input函数

    1.初识input函数 大多数程序都旨在解决最终用户的问题,为此通常需要从用户那里获取一些信息.例如假设有人要判断自己是否到了投票的年龄,要编写回答这个问题的程序,就需要知道用户的年龄,这样才能给出答 ...

  8. XHbuilder 需要的 ipa 签名,超详细的教程,你不看吃亏的是自己!

    今天使用 hbuilder 运行到 ios 真机的时候,突然发现还需要 ipa 签名,这是什么东东呢? 1.IPA 签名是什么? 因苹果公司禁止企业证书用于非企业内部开发者.所以开发者无法再使用DCl ...

  9. 什么是 CSR、SSR、SSG、ISR - 渲染模式详解

    本文以 React.Vue 为例,介绍下主流的渲染模式以及在主流框架中如何实现上述的渲染模式. 前置知识介绍 看渲染模式之前我们先看下几个主流框架所提供的相关能力,了解的可跳到下个章节. 挂载组件到 ...

  10. Kafka 如何保证消息不被重复消费?或者说,如何保证消息消费的幂等性?

    如何保证消息不被重复消费?或者说,如何保证消息消费的幂等性? >幂等性,通俗点说,就一个数据,或者一个请求,给你重复来多次,你得确保对应的数据是不会改变的,不能出错. kafka 的机制:  K ...