Ubuntu 16.04 LTS - X 服务器是如何启动的?

Irb*_*bis 23 xorg xserver 16.04

我认为/usr/bin/startx脚本是用来启动 X 服务器的,但看起来不是真的。哪个进程或脚本启动 X 服务器?X 服务器必须在 lightdm greeter 可见之前启动,但具体是什么时候启动?

stu*_*bee 14

/etc/init.d/lightdm启动 Xserver。Lightdm 首先启动,然后启动 Xserver。Xserver (Xorg) 的父进程是 lightdm(PID 25600,如下例所示)。您可以通过执行以下命令看到这一点:

ps -ef | grep lightdm.

root     25600     1  0 00:50 ?        00:00:00 /usr/sbin/lightdm  
root     25608 25600  2 00:50 tty7     00:00:35 /usr/lib/xorg/Xorg -core :0 -seat seat0 -auth /var/run/lightdm/root/:0 -nolisten tcp vt7 -novtswitch  
root     25686 25600  0 00:50 ?        00:00:00 lightdm --session-child 12 19
Run Code Online (Sandbox Code Playgroud)

运行以下命令将相应地停止和启动 lig​​htdm 和 Xserver:

sudo /etc/init.d/lightdm stop  
sudo /etc/init.d/lightdm start
Run Code Online (Sandbox Code Playgroud)


sud*_*dus 13

启动到文本屏幕并使用 startx

如果您的 Ubuntu 系统启动到文本屏幕,例如最小系统或服务器系统,您可以使用 startx 来启动 xserver(以及一个简单的窗口管理器,如 openbox 或fluxbox 或桌面环境,如 gnome、kde、lxde、.. .xfce)。

例如,安装三个程序包后启动并使用一个简单的图形桌面(在最小或服务器系统中)就足够了,

sudo apt update
sudo apt install fluxbox xinit xterm
Run Code Online (Sandbox Code Playgroud)

用命令

startx
Run Code Online (Sandbox Code Playgroud)

直接启动到图形桌面

如果您有一个 Ubuntu 桌面系统(标准 Ubuntu 或社区风格 Kubuntu、Lubuntu、... Xubuntu 之一),您不需要使用 startx,图形桌面环境会自动启动(并且您不需要运行startx)。如果我理解正确,它是通过systemd. 例如,请参阅以下链接,

wiki.archlinux.org/index.php/Systemd/User#Xorg_and_systemd

wiki.archlinux.org/index.php/xorg

在文本模式和图形模式之间切换

在以下链接的接受答案中描述了文本模式和图形模式之间的切换

在 16.04 中启动到文本模式

要在没有 X 的情况下启动 Ubuntu 16.04 桌面,请将 systemd.unit=multi-user.target 添加到 GRUB 中的 linux 命令行。

要使其成为默认值,请使用

sudo systemctl set-default multi-user.target
Run Code Online (Sandbox Code Playgroud)

要返回默认引导到 X,请使用

sudo systemctl set-default graphical.target
Run Code Online (Sandbox Code Playgroud)

要查看当前的默认目标,

sudo systemctl get-default
Run Code Online (Sandbox Code Playgroud)


urb*_*ben 3

您可以在此处阅读有关启动过程的信息: http://manpages.ubuntu.com/manpages/xenial/man7/boot.7.html

虽然手册没有提到Xserver(或X11),但init进程负责启动Xserver。