家里的电脑上,安装了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加载的环境变量不正确的更多相关文章

  1. Excel催化剂开源第3波-修复ExcelCom加载项失效问题及WPS可调用Com加载项的方法

    为了还原一个干净无侵扰的网络世界,本文将不进行大规模地分发,若您觉得此文有用,不妨小范围地分享到真正有需要的人手中 功能概述 修复ExcelCom加载项常见问题,如每次需重新勾选COM加载项或COM加 ...

  2. 使用RequireJS并实现一个自己的模块加载器 (一)

    RequireJS & SeaJS 在 模块化开发 开发以前,都是直接在页面上引入 script 标签来引用脚本的,当项目变得比较复杂,就会带来很多问题. JS项目中的依赖只有通过引入JS的顺 ...

  3. 在Qt Quick中一个简单Hello World加载过程

    Qt5基本类图: QQmlEngine    QQmlEngine类提供了一个QML引擎,用于管理由QML文档定义的对象层次架构,QML提供了一个默认的QML上下文(根上下文,获取函数QQmlEngi ...

  4. Android打造(ListView、GridView等)通用的下拉刷新、上拉自动加载的组件

    原文 http://blog.csdn.net/bboyfeiyu/article/details/39253051       前言 下 拉刷新组件在开发中使用率是非常高的,基本上联网的APP都会采 ...

  5. ListView下拉刷新,上拉自动加载更多

    下拉刷新,Android中非常普遍的功能.为了方便便重写的ListView来实现下拉刷新,同时添加了上拉自动加载更多的功能.设计最初是参考开源中国的Android客户端源码.先看示例图.       ...

  6. XRecyclerView:实现下拉刷新、滚动到底部加载更多以及添加header功能的RecyclerView

    介绍: 一个实现了下拉刷新,滚动到底部加载更多以及添加header功能的的RecyclerView.使用方式和RecyclerView完全一致,不需要额外的layout,不需要写特殊的adater. ...

  7. 【模块化编程】理解requireJS-实现一个简单的模块加载器

    在前文中我们不止一次强调过模块化编程的重要性,以及其可以解决的问题: ① 解决单文件变量命名冲突问题 ② 解决前端多人协作问题 ③ 解决文件依赖问题 ④ 按需加载(这个说法其实很假了) ⑤ ..... ...

  8. ie6下a标签click事件无法触发加载iframe

    ie6下a标签click事件无法触发加载iframe,把a换成span或者别的,就可以了

  9. 定义了一个UIImageView如何使加载的图片不会失真 UIImageView的Frame值是固定的

    定义了一个UIImageView如何使加载的图片不会失真  UIImageView的Frame值是固定的 UIViewContentModeScaleToFill, 缩放内容到合适比例大小 UIVie ...

随机推荐

  1. 简单Delphi程序设计

  2. Qualcomm_Mobile_OpenCL.pdf 翻译-7 内存性能优化

    内存优化是最重要也是最有效的OpenCL性能优化技术.大量的应用程序是内存限制而不是计算限制.所以,掌握内存优化的方法是OpenCL优化的基础.在这章中,将会回顾OpenCL的内存模型,然后是最优的实 ...

  3. (转) 【oracle调优】优化全表扫---cache整张表或索引

    情景分析: 1)某查询必须要走全表扫描 2)该查询执行的频率相当高 3)对执行时间的要求也相当苛刻的话 4)数据库的IO比较吃紧 5)数据库的内存比较宽松 6)该表的大小没有大到离谱 以上情况下,可以 ...

  4. 树上独立集数量 树型DP

    题目描述: 对于一棵树,独立集是指两两互不相邻的节点构成的集合.例如,图1有5个不同的独立集(1个双点集合.3个单点集合.1个空集),图2有14个不同的独立集,图3有5536个不同的独立集.  输入: ...

  5. strcmp-sse2-unaligned.S: No such file or directory.

    __strcmp_sse2_unaligned () at ../sysdeps/x86_64/multiarch/strcmp-sse2-unaligned.S:3131 ../sysdeps/x8 ...

  6. uboot dcc

    arch\arm\lib crt0.S 1.设置sp为CONFIG_SYS_INIT_SP_ADDR include/configs/xxx.h #define CONFIG_SYS_INIT_SP_ ...

  7. python字符串与列表的相互转化

    一.字符串转化为列表 a = 'abcabcabca' a = a.split('c') print(a) #['ab', 'ab', 'ab', 'a'] 二.列表转化为字符串 li = [&quo ...

  8. HTML5基础——笔记

    HTML5基础——笔记 近几年来,互联网+.大数据.云计算‘物联网‘虚拟现实‘人工智能.机器学习.移动互联网等IT相关新名词.新概念层出不穷,相关产业发展如火如荼.互联网+移动互联网已经深入到人民日常 ...

  9. The Preliminary Contest for ICPC Asia Shanghai 2019 D. Counting Sequences I

    题目:https://nanti.jisuanke.com/t/41412思路:dfs           先取ai>2  2^12>3000 因此至多取11个 其余用1补        ...

  10. Django 的 CBV&FBV

    Django FBV, function base view  视图里使用函数处理请求 url 1 url(r‘^users/‘, views.users), views 1 2 3 4 5 from ...