Я думал, что /usr/bin/startx
скрипт используется для запуска X-сервера, но похоже, что это не так. Какой процесс или скрипт запускает X-сервер? X-сервер должен быть запущен до того, как появится приветствие lightdm, но когда именно?
/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
Чтобы загрузить Ubuntu 16.04 Desktop без X один раз, добавьте systemd.unit = multi-user.target в командную строку linux в GRUB.
Чтобы сделать это по умолчанию, используйте
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 (PID = 1) порождает все, обычно включая x11
В 16.04 это
/sbin/init
из systemd-sysvисточник