who命令未显示DISPLAY环境变量对应的本地显示会话问题
who命令未显示DISPLAY环境变量对应的本地显示会话问题
嗨,我来帮你捋一捋这个问题~
首先得明确:你看到的两台机器who输出差异,核心原因是本地登录方式的不同,具体来说是图形会话的启动方式不一样:
- 你的pc2是通过图形化显示管理器(比如GDM、LightDM这类常见的桌面登录工具)登录的,这种情况下显示管理器会主动在系统会话里注册X11显示会话,所以
who会打出:0这个条目,它对应本地的第一个图形显示终端。 - 而pc1这边,你应该是直接在tty2控制台(纯命令行界面)登录的,哪怕之后手动启动了图形界面(比如用
startx命令),这种手动启动的X会话不会被显示管理器记录,所以who里就不会出现:0的条目。
那怎么验证和调整呢?给你几个小方法:
确认当前图形会话状态
先在pc1上执行echo $DISPLAY,如果输出是:0,说明确实有X11图形会话在运行,只是who没记录而已。试试用
w命令替代whow命令能显示更详细的会话信息,包括每个会话的环境参数,你可以执行:team@pc1:~$ w虽然它可能也不会直接显示
:0,但能帮你确认当前所有活跃会话的状态。让
who显示:0的办法
如果你希望pc1的who也能像pc2那样显示:0条目,最简单的方式是通过图形显示管理器重新登录——也就是开机后直接进入图形登录界面输入账号密码,而不是先进入tty命令行再手动启动图形界面。
另外补充个小知识点:who里的:0本质是X11的显示编号,只有由显示管理器托管的图形会话才会被who识别并展示这个条目,手动启动的X会话属于用户自主启动的进程,不会被系统会话管理器记录在who的输出里。
备注:内容来源于stack exchange,提问作者Kjyong
相关产品推荐
相关产品推荐

