zoukankan      html  css  js  c++  java
  • 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相应的信息

    再进入问题环境,可以发现环境已经修复。

  • 相关阅读:
    机器学习系列(4) 线性回归
    MYSQL系列(5) 电商常用指标查询
    MYSQL系列(4) 关于时间函数的一些写法
    快速排序
    选择排序
    希尔排序
    直接插入排序
    冒泡排序
    Java修饰符大汇总
    字符串实现大数的相加
  • 原文地址:https://www.cnblogs.com/eaglexmw/p/11471029.html
Copyright © 2011-2022 走看看