RHEL9 XFCE ETX Multiple Session Gray Screen Fix
 RHEL9 XFCE ETX Multiple Session Gray Screen Fix 
 RHEL 9 下 XFCE 在 OpenText ETX 多会话中出现灰屏问题的解决方案
参考资料:
背景
在使用 OpenText Exceed TurboX(ETX)部署远程 Linux 桌面时,用户往往会配置轻量级桌面如 xfce4-session 以适配 RHEL 9 图形栈。但当同一用户尝试启动第二个会话时,桌面无法正确加载,常见表现为:
- 仅显示灰屏(无任务栏/窗口管理器)
- 不响应鼠标/键盘
- 关闭 Session 时无法正常退出
根因分析
根据社区讨论与官方 bug 跟踪,出现该问题的主要原因包括:
1. xfce4-session 不支持并发运行多实例(同用户)
XFCE 的 session 管理器(xfce4-session)会尝试通过 DBus 注册 session,如果同一用户已有运行中的 session,则第二个 session 会因为注册失败或资源锁冲突而退出或挂起。
2. 环境变量继承导致资源冲突
当启动第二个 ETX 会话时,若复用了以下关键环境变量,会话初始化将失败:
- DBUS_SESSION_BUS_ADDRESS
- XDG_RUNTIME_DIR
- XAUTHORITY
- DISPLAY
这些变量与第一个 session 紧密关联,导致桌面组件(如 xfwm4、xfce4-panel)无法初始化或连接错误的 socket 文件。
3. ~/.cache/sessions/ 下的 session 文件未隔离
XFCE 会在该目录记录 session 状态,多 session 并发写入/读取会触发 race condition。
解决方案
✅ 使用干净环境变量启动 xfce4-session
创建如下脚本(如 /nfs/etx/scripts/startxfce4-clean.sh):
1
2
3
4
5
6
7
8
9
#!/bin/bash
env -i /bin/sh -c "export PATH=$PATH;
                   export XAUTHORITY=$XAUTHORITY;
                   export DISPLAY=$DISPLAY;
                   export HOME=$HOME;
                   export LOGNAME=$LOGNAME;
                   export USER=$USER;
                   /usr/bin/xfce4-session"
确保设置权限:
1
chmod +x /nfs/etx/scripts/startxfce4-clean.sh
在 ETX 中,将该脚本设置为会话的启动命令(launch command)。
验证方式
- 启动第一个 ETX session,观察日志是否正常: - 1 - tail -f ~/.xsession-errors 
- 启动第二个 session,确认灰屏是否消失。
- 可对比前后 - env差异:- 1 2 3 - env > /tmp/env1 # 第一个正常 env > /tmp/env2 # 第二个失败 diff -u /tmp/env1 /tmp/env2 
总结
在 RHEL 9 + ETX 环境中,使用 XFCE 桌面时遇到灰屏,绝大多数是由于环境变量未隔离引起的。通过 env -i 启动一个最小化的会话环境,可以彻底绕过 xfce4-session 多实例带来的冲突。
附录:引用
- XFCE Forum: https://forum.xfce.org/viewtopic.php?id=11046
- XFCE Bugzilla: https://bugzilla.xfce.org/show_bug.cgi?id=7502
 This post is licensed under  CC BY 4.0  by the author.
