启动Xserver的方法有多种

2020-09-07 20:34:05

最近关于nixers的一个帖子让我想到了Xserver。我们经常通过StartX或显示管理器与其交互。我们可以通过多少种方式将参数发送到X服务器,实际上我们有多少种方式可以启动X会话。第一个是通过显示管理器,这是特定于每一个的,我将以lightdm为例。Lightdm.conf允许通过xserver-command=指令将参数传递给Xserver。例如:将参数传递给Xserver的一种明显方式是通过其配置文件。例如,Xorg在/etc/X11中有一个簇。从MAN 5 xorg.conf:SERVERFLAGS部分...开始设置选项#34;MaxClients";Integer";{#34;{#34;}{#34;}{#34;}{#34;}{#34;}{#34;{}}{\f25}{\f25{\f25{\f25}{\f25{\f25}{\。*。#所以...。Section";ServerFlags";创建新的选项";MaxClients&34;和#2048结束部分(EndSection";ServerFlags";EndSection)。

现在,如果您使用的是StartX(1),该怎么办?名称:-StartX-Initialize an X Session概要:-StartX[[Client]Options...][--[server][Display]Options...][--[SERVER][DISPLAY]Options...]。

--之后的任何内容都将被视为Xserver的参数(如果不是以/或./开头),因此您可以执行以下操作:StartX默认执行$HOME/.xserverrc中的服务器或xinit目录中的服务器,目前通常是/etc/x11/xinit/xserverrc。同样,如果您使用的是xinit(1)。名称:*--[server][display]Options...]。

--之后的任何内容都将被视为Xserver的参数,默认执行xserverrc,就像StartX一样。那么,你可能会问,为什么要使用StartX呢?不过,StartX是xinit之上的包装器,使启动会话变得更容易……。那么它是做什么的呢?它通过循环/tmp/.X{digit}-lock和/tmp/.X11-unix/X{digit}获得下一个可用的显示,并通过执行tty(1)获得tty编号。它还为xauth设置特性(如果启用),比如设置.XAuthority环境变量、创建身份验证cookie(MCookie)并使用xauth(1)注册它。并在需要时清理所分配的Vt(DeDeLocVt)和Xauth会话。但Xauth不是强制性的。最后,您会得到这样一行代码来打开显示的会话:1和TTY 2:,这样您就可以明确地将您的参数传递给那里的Xserver。但是,如果我们更进一步,自己运行Xorg,我们需要xinit做什么呢?让我们全力以赴吧。从Arch Wiki:QUOTE:Xorg(1)命令通常不会直接运行,而是使用显示管理器或xinit启动X服务器。

很难找到一种方法在没有xinit的情况下直接从TTY运行Xorg(1)Xserver,而不会搞砸一切。但是,您可以用与启动Xephyr Xserver或Xvfb Xserver或其他服务器相同的方式-相同的o';相同的o';启动Xephyr Xserver或Xvfb Xserver或其他服务器。下面的代码启动显示的Xorg Xserver:1和TTY 2,并在其上运行会话(xinitrc脚本)。如果您想在后台启动Xorg,那么休眠在某种程度上是强制性的。(EDIT:或者您可以像SX一样等待进程)如此多的间接层,StartX调用xinit,xinit调用Xserver。伙计们,就是这样,我希望你们喜欢这次小小的越轨。并用你自己的想法和方式来评论一下如何开始X。