WSL(ubuntu2204)xfce4语言支持报错及配置WSL服务自启

news2024/11/15 18:50:54

语言支持报错

在图形桌面或命令行打开语言支持报错:dbus.exceptions.DBusException: org.freedesktop.DBus.Error.FileNotFound: Failed to connect to socket /run/dbus/system_bus_socket: No such file or directory

itboone@localhost:/$ sudo /usr/bin/gnome-language-selector
Traceback (most recent call last):
  File "/usr/bin/gnome-language-selector", line 21, in on_activate
    instance = GtkLanguageSelector(datadir=options.datadir,
  File "/usr/lib/python3/dist-packages/LanguageSelector/gtk/GtkLanguageSelector.py", line 185, in __init__
    self.ac = aptdaemon.client.AptClient()
  File "/usr/lib/python3/dist-packages/aptdaemon/client.py", line 1056, in __init__
    self.bus = dbus.SystemBus()
  File "/usr/lib/python3/dist-packages/dbus/_dbus.py", line 195, in __new__
    return Bus.__new__(cls, Bus.TYPE_SYSTEM, mainloop=mainloop,
  File "/usr/lib/python3/dist-packages/dbus/_dbus.py", line 102, in __new__
    bus = BusConnection.__new__(subclass, bus_type, mainloop=mainloop)
  File "/usr/lib/python3/dist-packages/dbus/bus.py", line 124, in __new__
    bus = cls._new_for_bus(address_or_type, mainloop=mainloop)
dbus.exceptions.DBusException: org.freedesktop.DBus.Error.FileNotFound: Failed to connect to socket /run/dbus/system_bus_socket: 没有那个文件或目录

 一番搜索找到原因:缺少的文件是由dbus daemon服务创建的,但是这个服务没有启动。

手动启动dbus服务后发现:多一个dbus-daemon --system的服务

itboone@localhost:/run$ ps -ef |grep dbus
itboone     96     8  0 16:31 ?        00:00:00 /usr/bin/dbus-launch --sh-syntax --exit-with-session xfce4-session
itboone     97     8  0 16:31 ?        00:00:00 /usr/bin/dbus-daemon --syslog --fork --print-pid 5 --print-address 7 --session
itboone    108   103  0 16:31 ?        00:00:00 /usr/bin/dbus-daemon --config-file=/usr/share/defaults/at-spi2/accessibility.conf --nofork --print-address 11 --address=unix:path=/home/itboone/.cache/at-spi/bus_14.0
itboone    371     9  0 16:33 pts/0    00:00:00 grep --color=auto dbus
itboone@localhost:/run$ sudo /etc/init.d/dbus start
 * Starting system message bus dbus                                                                              [ OK ]
itboone@localhost:/run$ ps -ef |grep dbus
itboone     96     8  0 16:31 ?        00:00:00 /usr/bin/dbus-launch --sh-syntax --exit-with-session xfce4-session
itboone     97     8  0 16:31 ?        00:00:00 /usr/bin/dbus-daemon --syslog --fork --print-pid 5 --print-address 7 --session
itboone    108   103  0 16:31 ?        00:00:00 /usr/bin/dbus-daemon --config-file=/usr/share/defaults/at-spi2/accessibility.conf --nofork --print-address 11 --address=unix:path=/home/itboone/.cache/at-spi/bus_14.0
message+   391     8  0 16:34 ?        00:00:00 /usr/bin/dbus-daemon --system
itboone    976     9  0 16:34 pts/0    00:00:00 grep --color=auto dbus

查看/run/dbus/目录发现文件system_bus_socket已创建

itboone@localhost:/run$ cd /run/dbus
itboone@localhost:/run/dbus$ ls
pid  system_bus_socket

这时使用命令以管理员身份启动语言支持

sudo /usr/bin/gnome-language-selector

发现可以正常打开

解决方法

dbus服务不能自启的原因尚未找到,但是可以使用笨方法解决,即加入开机启动服务。

通常在 Linux 中开机启动可以通过

  1. 编辑/etc/rc.loacl
  2. 在/etc/init.d/ 下添加启动脚本
  3. 配置systemd

但这几种方式在子系统中无法使用,我们可以通过 Windows 间接的启动子系统中的服务。

创建wsl启动脚本

进入任意 WSL 发行版中,创建并编辑文件:/etc/init.wsl

sudo vim /etc/init.wsl

脚本内容如下

#! /bin/sh

/etc/init.d/dbus start

 设置权限为可执行

sudo chmod +x /etc/init.wsl

这时候可以通过下面的命令来启停设置的服务

sudo /etc/init.wsl [start|stop|restart]

测试脚本 

在windows终端输入命令

wsl -d ubuntu2204 -u root sudo /etc/init.wsl start

查看wsl是否启动(Running)

C:\Users\itboone>wsl -l -v
  NAME          STATE           VERSION
* ubuntu2204    Running         2
  centos7       Stopped         2

 查看脚本服务是否启动( "+" 代表已启动)

itboone@localhost:/mnt/c/Users/itboone$ sudo service --status-all
 [ - ]  acpid
 [ - ]  alsa-utils
 [ - ]  anacron
 [ - ]  apparmor
 [ ? ]  apport
 [ - ]  avahi-daemon
 [ - ]  console-setup.sh
 [ - ]  cron
 [ + ]  dbus
 [ ? ]  hwclock.sh
 [ + ]  irqbalance
 [ - ]  kerneloops
 [ - ]  keyboard-setup.sh
 [ ? ]  kmod
 [ - ]  lightdm
 [ - ]  lm-sensors
 [ ? ]  plymouth
 [ ? ]  plymouth-log
 [ - ]  procps
 [ - ]  pulseaudio-enable-autospawn
 [ - ]  rsync
 [ - ]  saned
 [ - ]  screen-cleanup
 [ - ]  speech-dispatcher
 [ - ]  spice-vdagent
 [ - ]  udev
 [ - ]  ufw
 [ - ]  unattended-upgrades
 [ - ]  uuidd
 [ + ]  whoopsie
 [ - ]  x11-common
 [ + ]  xrdp

wsl参数说明

-u  root 用于指定 wsl 的登录用户

-d  ubuntu2204 用于指定 wsl 的发行版

注:-d 后面的发行版名称一定要替换为自己安装的版本(可通过 wsl -l 查看)

创建windows开机启动脚本

如过不想每次都通过终端命令来启动 wsl 及 init.wsl 服务,可以配置 Windows 启动时代理启动。

在 Windows 中使用快捷键 WIN+R 打开运行窗口,输入 shell:startup 打开 "启动" 目录。

创建文本文档 linux-start.txt 并修改后缀为 .vbs,内容如下 (vbhide表示隐藏命令行窗口):

Set ws = WScript.CreateObject("WScript.Shell")        
ws.run "wsl -d ubuntu2204 -u root sudo /etc/init.wsl start", vbhide

重启 Windows 登录账户后就会执行 linux-start.vbs,通过vbs脚本来执行 wsl 以及 init.wsl 服务

wsl 中有很多有用的服务,你可以按需删改 /etc/init.wsl ,但没必要塞很多东西进去影响你的启动速度,比如 mysql/mongodb 这些重度服务,可以需要的时候再启动,用完就停了。

参考资料

WSL 服务自动启动的正确方法https://zhuanlan.zhihu.com/p/47733615

Windows中的WSL2(子系统)开机启动配置​​​​​https://blog.csdn.net/hiqiming/article/details/105244147

WSL 的基本命令 | Microsoft Learnhttps://learn.microsoft.com/zh-cn/windows/wsl/basic-commands?source=recommendations

手动启动dbus以及dbus daemonhttps://blog.csdn.net/bw_yyziq/article/details/83505596

Failed to connect to socket /opt/local/var/run/dbus/system_bus_sockethttps://9to5answer.com/failed-to-connect-to-socket-opt-local-var-run-dbus-system_bus_socket-no-such-file-or-directory

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/355667.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

gRPC 非官方教程

一、 简介 gRPC的定义: 一个高性能、通用的开源RPC框架主要面向移动应用开发: gRPC提供了一种简单的方法来精确地定义服务和为iOS、Android和后台支持服务自动生成可靠性很强的客户端功能库。基于HTTP/2协议标准而设计,基于ProtoBuf(Protoc…

Visual Studio 高级调试-代码调试

概述编程圈子里隔三差五的就会有场“谁是最强IDE”之争,重要的是我们需要对使用的IDE有充分的了解,正所谓工欲善其事,必先利其器。本文主要讲述Visual Studio常用的调试技巧,包括多类型断点,数据监视,以及多…

剑指 Offer 59 - I. 滑动窗口的最大值

摘要 剑指 Offer 59 - I. 滑动窗口的最大值 一、大顶堆求解 对于每个滑动窗口,我们可以使用 O(k) 的时间遍历其中的每一个元素,找出其中的最大值。对于长度为n的数组 nums而言,窗口的数量为 n−k1,因此该算法的时间复杂度为 O(…

在线图片转gif怎么操作?试试这一招在线制作gif

静图怎么变成gif动图?想要将手中的静态图片变成gif动图又不想下载软件的时候要怎么操作呢?很简单,通过使用【GIF中文网】的动图在线制作(https://www.gif.cn/)功能,两招就能在线制作gif图片,方便…

小红书购物笔记在哪里看?

小红书购物笔记在哪里看?#小红书带货#小红书变现#小红书运营#小红书营销#内容营销 在现在这个时代,网上购物已经成为一种日常的行为。每天大量的人在通过小红书购买他们心仪的商品,生活态度也越来越追求高品质。小红书不但能够让用户在网上购…

Metasploit框架基础(二)

文章目录前言一、Meatsplooit的架构二、目录结构datadocumentationlibmodulesplugins三、Measploit模块四、Metasploit的使用前言 Metasploit是用ruby语言开发的,所以你打开软件目录,会发现很多.rb结尾的文件。ruby是一门OOP的语言。 一、Meatsplooit的…

【opencv源码解析0.1】opencv库VS环境配置

opencv环境配置 感谢大家学习这门教程。本系列文章首发于公众号【周旋机器视觉】。 这个这门课程的第一篇文章,主要是opencv环境配置。 本教程的环境为 Visual Studio 2019CMake 3.22.3opencv 4.6.0windows 10 1、opencv的源码下载与安装 直接访问opencv官网&…

MySQL数据库优化————COUNT优化

直接进入主题 索引对count语句的影响 在我们对departments表进行count查询时,使用了以下语句 select count(*) from employees;当前employees表索引情况如图 只有一个主键索引 执行 explain select count(*) from employees;从结果中可以看到,这时…

NOIP2014-提高组初赛C语言解析(选择填空题)

第二十届(2014年)全国青少年信息学奥林匹克联赛初赛一、单项选择题(共 20 题,每题 1.5 分,共计 30 分。每题有且仅有一个正确选项)1. 以下哪个是面向对象的高级语言( B )A.汇编语言 B.C C.Fortran D.Basic参…

【opencv源码解析0.4】如何使用cmake来管理项目

如何使用cmake来管理项目 【opencv源码解析0.1】VS如何优雅的配置opencv环境 【opencv源码解析0.2】如何编译opencv库源码 【opencv源码解析0.3】调试opencv源码以及使用cmake来管理项目 前面几篇文章我们都是围绕Visual Studio 2019这个IDE来展开的,IDE为我们做了…

矩阵中的路径-剑指Offer-java深度优先

一、题目描述给定一个 m x n 二维字符网格 board 和一个字符串单词 word 。如果 word 存在于网格中,返回 true ;否则,返回 false 。单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相…

k8s部署mysql+初始化数据

1. 准备工作 1.k8s的前置内容需要提前了解 2.mysql的初始化数据 3.docerk相关知识点需要了解 2. 部署步骤 初始化数据文件准备,准备了nacos的一张表sql脚本,需要修改一点点内容 文件名称:init-nacos.sql 部分内容显示: 主要创建…

潘长江张杰再现狂飙名场面,一般人把握不住

潘长江张杰再现狂飙名场面,一般人把握不住#我们的客栈#高启强#老墨我饿了 在昨晚播出的《我们的客栈》在猜人游戏的环节中,张杰和潘长江商量了一番,决定还原《狂飙》某一名场面,没想到被张维伊一秒猜出,张维伊还说这是…

图像分类竞赛进阶技能:OpenAI-CLIP使用范例

OpenAI-CLIP 官方介绍 尽管深度学习已经彻底改变了计算机视觉,但目前的方法存在几个主要问题:典型的视觉数据集是劳动密集型的,创建成本高,同时只教授一组狭窄的视觉概念;标准视觉模型擅长于一项任务且仅擅长于一项任务,并且需要大…

【QT专栏】QT中实现多线程的四种方式总结(金针菇般细)

目录 一、继承QThread 1,基本概念 2,操作流程 二、继承QObject(推荐) 1,基本概念 2,操作流程 三、继承QRunnable,配合QThreadPool实现多线程 1,外界通信 2,QMet…

SpringSecurity的安全认证的详解说明(附完整代码)

SpringSecurity登录认证和请求过滤器以及安全配置详解说明 环境 系统环境:win10 Maven环境:apache-maven-3.8.6 JDK版本:1.8 SpringBoot版本:2.7.8 根据用户名密码登录 根据用户名和密码登录,登录成功后返回Token数据…

狂神聊Redis复习笔记一

目录目前一个基本的互联网项目!NoSQL 特点Redis 是什么?Redis 能干嘛?特性测试性能基础的知识Redis 是单线程的!Redis 为什么单线程还这么快?五大数据类型Redis-KeyString(字符串)List&#xff…

[软件工程导论(第六版)]第3章 需求分析(复习笔记)

文章目录3.1 需求分析的任务3.2 与用户沟通获取需求的方法3.3 分析建模与规格说明3.4 实体-联系图(E-R图)3.5 数据规范化3.6 状态转换图3.7 其他图形工具3.8 验证软件需求需求分析是软件定义时期的最后一个阶段,需求分析的基本任务是准确的回…

EASYui+C#web

第一步创建一个web应用程序。 选择web应用程序。 第二步选择mvc框架 创建完成项目目录。 如图引入easyui包。 记住复制到content文件夹&#xff0c;否则无法识别。 easyui下载&#xff0c;官网。 如何用 引入jscss文件 <link rel"stylesheet" type"text…

Guitar Pro8手机电脑免费版吉他软件下载

Guitar Pro8是专业的吉他软件&#xff0c;具有可视化的五线谱编辑器&#xff0c;涵盖常用的乐器和特殊乐器单元&#xff0c;内置海量吉他音色效果和1000多个乐器音色&#xff0c;成为一个小型音乐站&#xff0c;制作出动听的音乐&#xff0c;支持边看边听&#xff0c;添加音频轨…