He pensado que el /usr/bin/startx
script se usa para iniciar el servidor X, pero parece que no es cierto. ¿Qué proceso o script inicia el servidor X? El servidor X debe iniciarse antes de que lightdm greeter sea visible, pero ¿cuándo exactamente?
/etc/init.d/lightdm inicia el Xserver. Lightdm comienza primero y luego inicia Xserver. El proceso padre del Xserver (Xorg) es lightdm (PID 25600 como se muestra en el ejemplo a continuación). Puede ver esto ejecutando:
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
La ejecución de los siguientes comandos detendrá e iniciará lightdm y Xserver en consecuencia:
sudo /etc/init.d/lightdm stop
sudo /etc/init.d/lightdm start
startx
Si su sistema Ubuntu se inicia en una pantalla de texto, por ejemplo, un sistema mínimo o un sistema de servidor, puede usar startx para iniciar xserver (y un administrador de ventanas simple como openbox o fluxbox o un entorno de escritorio como gnome, kde, lxde, .. .xfce).
Por ejemplo, es suficiente iniciar y usar un escritorio gráfico simple (en un sistema mínimo o de servidor) después de instalar tres paquetes de programas,
sudo apt update
sudo apt install fluxbox xinit xterm
con el comando
startx
Si tiene un sistema de escritorio Ubuntu (Ubuntu estándar o uno de los sabores de la comunidad Kubuntu, Lubuntu, ... Xubuntu), no necesita usar startx, el entorno de escritorio gráfico se inicia automáticamente (y no necesita ejecutarse startx
). Si entiendo correctamente, se inicia a través de systemd
. Ver por ejemplo los siguientes enlaces,
wiki.archlinux.org/index.php/Systemd/User#Xorg_and_systemd
wiki.archlinux.org/index.php/xorg
El cambio entre el modo de texto y el modo de gráficos se describe en la respuesta aceptada del siguiente enlace
Arranque en modo texto en 16.04
Para iniciar Ubuntu 16.04 Desktop sin X una vez, agregue systemd.unit = multi-user.target a la línea de comando de Linux en GRUB.
Para hacer que esto sea el predeterminado, use
sudo systemctl set-default multi-user.target
Para volver al arranque predeterminado en X, use
sudo systemctl set-default graphical.target
Para ver el objetivo predeterminado actual,
sudo systemctl get-default
Puede leer sobre el proceso de arranque aquí: http://manpages.ubuntu.com/manpages/xenial/man7/boot.7.html
Aunque el manual no menciona Xserver (o X11), el proceso de inicio es responsable de iniciar Xserver.
El proceso de inicio (PID = 1) genera todo, generalmente incluye x11
En 16.04 es
/sbin/init
de systemd-sysvfuente