ArchLinux下XFCE的一个问题修复:thunar加载的环境变量不正确
家里的电脑上,安装了Arch32与Arch64。不记得以前做过什么操作,
导致在Arch32下,Thunar启动后,其环境变量缺失很多内容。
主要在PATH及LD_LIBRARY_PATH几个关键变量缺失,导致很多功能使用不便
经过几天的摸索,终于找到原凶。
现象是:Thunar启动后,环境变量缺失很多
定位经历:由于同时有Arch32与Arch64,因此可以反复启动对比。
首先找到线索:
1.通过进程树对比,有问题的环境下,Thunar启动后的父进程是Systemd
2.而正常环境下,Thunar启动后的父进程是xfce4-session
同时查看其启动参数,得到信息
1.有问题的环境下,Thunar启动参数是 --daemon
2.正常环境则会带--sm-id xxxxxxxxxx-yyyyyyyyy字样
从XFCE4启动流程可知,xfce4-session负责拉起包括xfdesktop/xfce4-panel/thunar等多个进程
因此问题原因推进到Thunar的启动方式不正确。
定位手段不足,反复查看systemd等的系统日志,也没查找到有启动Thunar失败的提示。
无奈去查xfce-session的代码,发现其提供调试手段,环境变量中有XFSM_VERBOSE时,会记录日志到当前用户目录下
在/etc/profile中增加变量XFSM_VERBOSE后,对比问题环境、正常环境的日志,发现在在XFSM模块加载初始会话时,就缺少Thunar项
原因定位到了,就是初始会话中缺少Thunar。
xfce-session启动时,先根据初始会话,依次加载启动每个APP。
加载完成后,会检查XFCE4几个关键组件是否启动,如果没有启动,则以Failsafe方式启动缺失的组件。
Thunar正是由此启动起来的。
修复办法,首先在问题环境中,进系统后打开“启动与会话”,然后删除相应缺省会话,重启发生不生效!
想了一下,XFCE4在正常退出时,会自动保存当前会话,因此操作就没有作用。
最后还是得手工来操作:进入正常环境,将问题环境的分区mount上来,找到HOME目录下进入到
~/.cache/sessions,删除xfce相应的信息
再进入问题环境,可以发现环境已经修复。
ArchLinux下XFCE的一个问题修复:thunar加载的环境变量不正确的更多相关文章
- Excel催化剂开源第3波-修复ExcelCom加载项失效问题及WPS可调用Com加载项的方法
为了还原一个干净无侵扰的网络世界,本文将不进行大规模地分发,若您觉得此文有用,不妨小范围地分享到真正有需要的人手中 功能概述 修复ExcelCom加载项常见问题,如每次需重新勾选COM加载项或COM加 ...
- 使用RequireJS并实现一个自己的模块加载器 (一)
RequireJS & SeaJS 在 模块化开发 开发以前,都是直接在页面上引入 script 标签来引用脚本的,当项目变得比较复杂,就会带来很多问题. JS项目中的依赖只有通过引入JS的顺 ...
- 在Qt Quick中一个简单Hello World加载过程
Qt5基本类图: QQmlEngine QQmlEngine类提供了一个QML引擎,用于管理由QML文档定义的对象层次架构,QML提供了一个默认的QML上下文(根上下文,获取函数QQmlEngi ...
- Android打造(ListView、GridView等)通用的下拉刷新、上拉自动加载的组件
原文 http://blog.csdn.net/bboyfeiyu/article/details/39253051 前言 下 拉刷新组件在开发中使用率是非常高的,基本上联网的APP都会采 ...
- ListView下拉刷新,上拉自动加载更多
下拉刷新,Android中非常普遍的功能.为了方便便重写的ListView来实现下拉刷新,同时添加了上拉自动加载更多的功能.设计最初是参考开源中国的Android客户端源码.先看示例图. ...
- XRecyclerView:实现下拉刷新、滚动到底部加载更多以及添加header功能的RecyclerView
介绍: 一个实现了下拉刷新,滚动到底部加载更多以及添加header功能的的RecyclerView.使用方式和RecyclerView完全一致,不需要额外的layout,不需要写特殊的adater. ...
- 【模块化编程】理解requireJS-实现一个简单的模块加载器
在前文中我们不止一次强调过模块化编程的重要性,以及其可以解决的问题: ① 解决单文件变量命名冲突问题 ② 解决前端多人协作问题 ③ 解决文件依赖问题 ④ 按需加载(这个说法其实很假了) ⑤ ..... ...
- ie6下a标签click事件无法触发加载iframe
ie6下a标签click事件无法触发加载iframe,把a换成span或者别的,就可以了
- 定义了一个UIImageView如何使加载的图片不会失真 UIImageView的Frame值是固定的
定义了一个UIImageView如何使加载的图片不会失真 UIImageView的Frame值是固定的 UIViewContentModeScaleToFill, 缩放内容到合适比例大小 UIVie ...
随机推荐
- RHEL6本地YUM源配置
1.挂载本地光盘到系统 1)通过光驱将系统盘挂载到某个目录 [root@cluster01 ~]# mkdir /mnt/cdrom [root@cluster01 ~]# mount -t ...
- 第二篇:请求库之requests,selenium
requests模块 一.介绍 #介绍:使用requests可以模拟浏览器的请求,比起之前用到的urllib,requests模块的api更加便捷(本质就是封装了urllib3) #注意:reques ...
- Rsync服务端部署流程
Rsync服务端部署流程 Rsync服务端部署流程: 一.rsync服务端配置流程 配置rsync配置文件/etc/rsyncd.conf 创建同步的本地目录/dingjian 并根据需要 ...
- Codeforces Round #569 (Div. 2) C. Valeriy and Deque
链接: https://codeforces.com/contest/1180/problem/C 题意: Recently, on the course of algorithms and data ...
- pyqt5-复合控件中的子控件
天子骄龙
- 【leetcode】1201. Ugly Number III
题目如下: Write a program to find the n-th ugly number. Ugly numbers are positive integers which are div ...
- vector利用swap()函数进行内存的释放
首先,vector与deque不同,其内存占用空间只会增长,不会减小.比如你首先分配了10,000个字节,然后erase掉后面9,999个,则虽然有效元素只有一个,但是内存占用仍为10,000个.所有 ...
- 【转】博弈论——acm
转自http://blog.csdn.net/lgdblue/article/details/15809893 序:博弈是信息学和数学试题中常会出现的一种类型,算法灵活多变是其最大特点,而其中有一类试 ...
- [CSP-S模拟测试]:最大异或和(数学)
题目传送门(内部题81) 输入格式 第一行一个整数$T(T\leqslant 20)$,表示测试数据组数 接下来$T$组,对于每一组,第一行一个整数$n$ 第二行有$n$个整数,为$w_1,w_2.. ...
- i++ 是线程安全的吗
相信很多中高级的 Java 面试者都遇到过这个问题,很多对这个不是很清楚的肯定是一脸蒙逼.内心肯定还在质疑,i++ 居然还有线程安全问题?只能说自己了解的不够多,自己的水平有限. 先来看下面的示例来验 ...