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相应的信息 再进入问题环境,可以发现环境已经修复。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |