startx 命令有什么作用?

startx 命令有什么作用?

在阅读有关 Ubuntu 的文章时,我发现了以下声明......

如果显示管理器未在默认运行级别下默认启动,则可以在登录文本模式控制台后,通过从命令行运行 startx 以不同的方式启动 X。

默认运行级别是什么意思?当我在终端上尝试此操作时,我得到了以下信息:

anupam@JAZZ:~$ startx

X: user not authorized to run the X server, aborting.
xinit: giving up
xinit: unable to connect to X server: Connection refused
xinit: server error

答案1

曾几何时(1),当计算机内存以千字节为单位、磁盘以兆字节为单位时,一直运行图形界面被认为是有害的。

大多数 Unix 计算机用于多用户环境中的科学计算和模拟,其上运行的图形界面会减少可用的内存和 CPU 能力。

因此,当您需要图形界面时,只需使用startx(2) 启动它即可。

startx基本上运行X服务器(图形“驱动程序”)以及在其上运行的命令,通常是窗口管理器默认情况下,运行的命令位于~/.xinitrc您的主目录中的文件中,或者某些通用系统文件中。

现代系统从底层开始就被认为有一个一直运行的图形系统,所以可能没有人startx长期检查过它的运行情况——这解释了你可能遇到的许多奇怪行为。

如果您想体验并感受过去的美好时光,最好的办法是做以下事情:

A) 安装Xnestfvwm是一个图形化的服务器内服务器,一种在正常系统中以窗口形式打开的服务器。韋姆是一个非常简单的窗口管理器,当时非常流行。您还需要旧的像素图字体。

sudo apt-get install xnest fvwm 
sudo apt-get install xfonts-100dpi xfonts-100dpi-transcoded xfonts-75dpi-transcoded xfonts-75dpi 

B)将此文件写入某处,例如在您的主目录中,并将其命名为~/test

#!/bin/bash 
#
xterm & 
exec fvwm2

C)运行(注意:startx通常首先运行客户端命令,然后是双破折号,然后是服务器命令。正如我所说,大多数新系统没有startx单独的合理默认值。)

cd ~
startx ~/test -- /usr/bin/Xnest -ac :1 -geometry 800x600

...你有一个80年代的工作站屏幕:

在此处输入图片描述

(您可以通过点击“Xnest”桌面来查看菜单)。

...如果你真的喜欢冒险,你可以在另一个虚拟控制台上启动本机会话(阅读其他答案),方法是使用 Ctrl-Alt-F1 进入其中一个控制台,登录,然后

startx ~/test 

通常会通过 Ctrl-Alt-F8 打开。

注意:现代桌面环境并非设计为在两个不同的控制台中同时为同一用户运行。因此,在进行此实验时,请勿使用gnome-shellunity或现代的东西,否则可能会弄乱您的配置。


脚注:

(1)这里谈论的是 1980-90 年代左右。

(2) 例如,我有一台 256k RAM 的笔记本电脑。它在(黑白!)图形界面下运行速度非常慢,但在控制台下却非常快。因此,我大部分工作(编辑和类似文件)都是在控制台模式下完成的CLaTeX只有在真正需要时才切换到图形环境。

答案2

startx启动 xsession 或图形界面,您可以在其中看到登录屏幕以及不仅仅是 ascii 控制台(文本会话)的其他内容。

您收到此错误是因为 xsession 已经启动,并且您正尝试从 tty7 上的 xsession 内部执行命令。

ctrltty7 是存在于++ (默认 xsession)alt的用户界面。f7

ctrltty1 是存在于++alt的用户界面f1

ctrltty2 是存在于++ alt...f2等处的用户界面。

tty1 - tty6 是文本会话,您可以在其中一个屏幕上使用用户名和密码登录。登录后,您可以运行命令startx,如果 xsession 尚未运行,则它将在 tty7 中启动;如果 tty7 已在运行 xsession,则它将在 tty8 中启动。


运行级别:

运行级别 0 Halt-关闭系统。

运行级别 1 单用户模式 ​​- 管理任务的模式。

运行级别 2 带网络的图形化多用户 - 正常启动系统。

运行级别 3-5 未使用,但配置与运行级别 2 相同

运行级别 6 重新启动 - 重新启动系统。

术语“运行级别”是指在实现 Unix System V 样式初始化的计算机操作系统之一中的操作模式。通常,存在七个运行级别,编号从零到六;但最多可以使用十个,从零到九[需要引证]。S 有时用作其中一个级别的同义词。启动时只执行一个“运行级别” - 运行级别不是按顺序执行的,即要么执行运行级别 2 或 3 或 4,而不是先执行 2,然后执行 3,然后执行 4。-zh.wikipedia.org/wiki/Runlevel

答案3

它只是意味着在不同的终端

引用链接的问题:

默认情况下,Ubuntu 有 7 个 tty。

1-6仅为命令行,7运行您的 X 会话(您的普通图形桌面)。

要访问它们,请使用此键盘快捷键:Ctrl++AltF1

(切换F1到F1-F6来访问您需要的终端)

要返回到 X 会话(正常桌面),请使用:Ctrl++AltF7

after logging on to a text-mode console只是意味着登录到不同的 tty 并输入命令:

startx

答案4

正如 Rmano 所言,startx 是一种非常古老的方法。早在使用这种方法时,X11 二进制文件就以 setuid root 身份安装。

我刚刚在虚拟机中尝试了这个,事实上,startx正如你所描述的,默认情况下会失败。chmod u+s /usr/lib/xorg/Xorg不过已经修复了这个问题。

我不推荐设置Xorg为 setuid root。出于充分理由,世界已经不再这样做了。但如果您在一次性 VM 中玩耍,这就是使之startx工作的方法。

相关内容