因此,当我尝试以普通用户身份使用 Xorg 命令时,这是它给我的错误:
/usr/lib/xorg/Xorg.wrap: Only console users are allowed to run the X server
但我不明白,什么是“控制台用户”?当我切换到 root 时,它给了我另一个错误:
_XSERVTransSocketUNIXCreateListener: ...SocketCreateListener() failed
_XSERVTransMakeAllCOTSServerListeners: server already running
(EE)
Fatal server error:
(EE) Cannot establish any listening sockets - Make sure an X server isn't already running(EE)
(EE)
Please consult the The X.Org Foundation support
at http://wiki.x.org
for help.
(EE) Please also check the log file at "/var/log/Xorg.0.log" for additional information.
(EE)
(EE) Server terminated with error (1). Closing log file.
那么发生了什么,每个错误的原因是什么?
更新:命令的输出netstat -ln | grep -E '[.]X|:6[0-9][0-9][0-9]
是:
unix 2 [ ACC ] STREAM LISTENING 18044 @/tmp/.X11-unix/X0
unix 2 [ ACC ] STREAM LISTENING 47610 @/tmp/.X11-unix/X1
unix 2 [ ACC ] STREAM LISTENING 18045 /tmp/.X11-unix/X0
unix 2 [ ACC ] STREAM LISTENING 47611 /tmp/.X11-unix/X1
如果您确定安全隐患(任何人都可以使用 root 权限启动 X-Server,因为它具有特权硬件访问权限并访问大量文件可能会打开一个很大的安全漏洞)并且只关心功能,而不是关心安全,对于
以下可以提供帮助:
您可以添加到
线
来自
man Xorg.wrap
:这意味着您需要从Linux 文本控制台运行,实际上您是什么用户并不重要。(除了
root
总是允许的)。令人困惑:)。这里有两个切换到 Linux 文本控制台(和返回)的不同示例,具体取决于您的系统的具体配置方式:
在 Fedora 中切换到文本控制台
详细信息可能会有所不同,例如哪些编号的控制台(Ctrl+Alt+F1、Ctrl+Alt+F2 等)允许文本登录,哪些用于图形会话(或根本不使用)。
正如这所说,在引用部分的正上方有更多关于
:0
,:1
,含义的信息::2
https://www.x.org/wiki/FAQErrorMessages/#index5h2
(请注意,您使用的是更现代的 X 服务器配置,它不侦听任何 TCP 端口。这就是为什么您的错误发生在 _XSERVTransSocket UNIX CreateListener 而不是 _XSERVTransSocket Inet CreateListener 中的原因。但原理完全相同)。
啊哈,是的:-D。Xorg 是一个图形服务器。如果要在上面显示一些图形,则需要运行一些客户端程序。
Xorg 现在也以空光标启动。它是故意没有功能的,以避免在启动图形内容时出现闪烁/不一致。这已经改变了——当我第一次使用 Xorg 时,默认的背景和光标非常突兀。如果你想看看它是什么样子,你可以传递
-retro
选项:-)。传统上——我认为这是 Xwrapper 的行为——Xorg 会抓取一个未使用的控制台并切换到它。在这种情况下,您可以切换回之前的控制台(见上文)。当然,您可以再次切换回 Xorg 服务器,一旦您找到它抓取的数字控制台 :-)。
如果您在 Linux 上运行虚拟机,您的虚拟机将提供一些方法来注入组合键 Ctrl+Alt+F1 或其他任何东西,因为按下该组合键可能会在您的真机上切换控制台。
我会告诉你比较
startx -- :2
,它(希望)启动一些客户端以及 X 服务器 :-)。然而,最流行的现代 GUI 现在明确不支持多个会话。因此,在运行startx
. 否则,它可能看起来有效,但随后会以您不理解的奇怪方式出错。我正在使用 startx 命令启动 DWM,并将它插入到我的 bashrc 中,这样我就不必在每次登录时手动键入 startx 命令,那时我开始获得“只允许控制台用户使用 x 服务器”错误所以我从 bashrc 中删除了 startx 命令,这意味着我必须手动启动服务器,但现在我不再收到错误了