• 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相应的信息

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

  • 相关阅读:
    olcano调度器源代码走读actions篇
    dlv volcano scheduler
    informer
    DeltaFIFO reflector
    第五章 Redis集群
    第四章 Redis主从
    第三章 ACL安全策略
    第二章 Redis数据类型
    第一章 Redis基本原理
    第九章 Confluence集成Jira
  • 原文地址:https://www.cnblogs.com/eaglexmw/p/11471029.html
Copyright © 2020-2023  润新知