在Ubuntu系统中,有几种方法可以检查是否运行在图形模式(GUI)下:
1. 检查显示管理器服务
systemctl status display-manager
如果显示 active (running),通常表示图形界面正在运行。
2. 检查X11或Wayland会话
echo $XDG_SESSION_TYPE
返回 x11 或 wayland 表示图形模式,返回 tty 表示文本模式。
3. 检查DISPLAY环境变量
echo $DISPLAY
如果有输出(如 :0 或 :1),表示在图形模式下。
4. 检查是否有X进程运行
ps aux | grep -E "(Xorg|Xwayland|gnome-shell|kwin|mutter)"
如果有相关进程运行,表示图形界面正在运行。
5. 使用loginctl命令
loginctl show-session $(loginctl | grep $(whoami) | awk '{print $1}') -p Type
显示会话类型,x11 或 wayland 表示图形模式。
6. 检查当前虚拟终端
tty
如果显示 /dev/tty1 到 /dev/tty6 通常是图形终端,而 /dev/tty7 及以上通常是文本终端(但这不是绝对的)。
7. 简单的一行命令
[ -n "$DISPLAY" ] && echo "图形模式" || echo "文本模式"
8. 检查桌面环境进程
pgrep -x "gnome-shell|plasmashell|cinnamon|mate-session|xfce4-session"
如果有输出PID,表示对应的桌面环境正在运行。
最可靠的方法通常是组合检查 $DISPLAY 环境变量和显示管理器状态。如果系统使用Wayland,则检查 $WAYLAND_DISPLAY 或 $XDG_SESSION_TYPE 变量。
CLOUD技术笔记