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

我原以为/usr/bin/startx脚本用于启动X服务器,但看起来并非如此。 哪个进程或脚本启动X服务器? 必须在lightdm greeter可见之前启动X服务器,但确切时间?

/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 

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

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

启动到文本屏幕并使用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 Desktop,请将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 

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

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

Init proccess(PID = 1)产生一切,通常包括x11

在16.04中,它是systemd-sysv的/sbin/init