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

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

我以为该/usr/bin/startx脚本用于启动 X 服务器,但看起来并非如此。哪个进程或脚本启动 X 服务器?必须在 lightdmgreeter 可见之前启动 X 服务器,但具体什么时候启动?

答案1

启动到文本屏幕并使用startx

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

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

sudo apt update
sudo apt install fluxbox xinit xterm

使用命令

startx

直接启动进入图形桌面

如果您有 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

要返回默认启动 X,请使用

sudo systemctl set-default graphical.target

要查看当前默认目标,

sudo systemctl get-default

答案2

/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

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

sudo /etc/init.d/lightdm stop  
sudo /etc/init.d/lightdm start

答案3

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

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

答案4

初始化进程(PID=1)产生一切,通常包括 x11

在 16.04 中它是/sbin/initsystemd-sysv

相关内容