При чтении о Ubuntu я нашел следующее утверждение.....
Если менеджер дисплея не запущен по умолчанию в значении по умолчанию runlevel, можно запустить X другой путь, после вхождения в систему консоли текстового режима, путем выполнения startx из командной строки.
Что означает быть значением по умолчанию runlevel? И когда я попробовал это на своем терминале, я получил это:
anupam@JAZZ:~$ startx
X: user not authorized to run the X server, aborting.
xinit: giving up
xinit: unable to connect to X server: Connection refused
xinit: server error
Когда-то давно (1), то, когда память компьютеров измерялась в килобайтах и дисках в мегабайтах, выполняя графический интерфейс все время, считали вредным.
Большинство компьютеров Unix использовалось для научных расчетов и моделирования в пользовательских средах, и графический интерфейс, работающий на них, уменьшит эффективность ЗУ и мощность ЦП, доступную им.
Таким образом, при необходимости в графическом интерфейсе, Вы только что запустили его с startx
(2).
startx
в основном выполняет Xserver (графический "драйвер") и команда, которые работают на нем, который обычно является менеджером окон. По умолчанию команды, которые выполняются, находятся в ~/.xinitrc
файл в Вашем корневом каталоге или некоторый универсальный системный файл иначе.
Современные системы, как думают, с самого начала имеют графическую систему, работающую все время, таким образом, никто, вероятно, не проверил работу startx
целую вечность - это объясняет большое странное поведение, которое Вы можете иметь.
Если Вы хотите экспериментировать и чувство добрые старые времена, лучшая вещь делает следующее:
A) установка Xnest
и fvwm
. Xnest является графическим server-within-a-server, своего рода сервер, который откроется как окно в Вашей нормальной системе. Fvwm является очень простым менеджером окон, который был очень популярен тогда. Вам будут нужны старые шрифты пиксельной карты, также.
sudo apt-get install xnest fvwm
sudo apt-get install xfonts-100dpi xfonts-100dpi-transcoded xfonts-75dpi-transcoded xfonts-75dpi
B) запишите этот файл где-нибудь, например, в Вас домашний dir, и назовите его ~/test
:
#!/bin/bash
#
xterm &
exec fvwm2
C) Выполненный (уведомление: startx
обычно выполняется со сначала клиентской командой, затем двойной тире и затем команда сервера. Как я сказал, самые новые системы не имеют разумных значений по умолчанию для startx
один.).
cd ~
startx ~/test -- /usr/bin/Xnest -ac :1 -geometry 800x600
... и Вы имеете 80ies экран рабочей станции:
(У Вас может быть меню путем нажатия на рабочий стол "Xnest").
... и если Вы чувствуете себя действительно предприимчивыми, можно запустить, собственная сессия на другой виртуальной консоли (прочитайте другие ответы) путем движения к одному из них с Ctrl-Alt-F1, входа в, и
startx ~/test
который будет обычно открывать на Ctrl-Alt-F8.
Уведомление: современные настольные среды не разработаны для выполнения одновременно, для того же пользователя, в двух различных консолях. Не используйте gnome-shell
или unity
или экспериментируют современные вещи при выполнении этого, или Вы могли испортить свою конфигурацию.
(1) Разговор о приблизительно 1980-90 здесь.
(2) Например, у меня был ноутбук с 256k RAM. Это было крайне медленно в (B&W!) графический интерфейс, но мгновенный в консоли. Таким образом, я сделал большую часть своей работы (редактирование C
, LaTeX
и подобные файлы) в консольном режиме, и переключенный на графическую среду только, когда действительно необходимый.
startx
запускает xsession или графический интерфейс, где Вы видите экран входа в систему и что-то большее чем просто консоль ASCII (текстовая сессия).
Вы получаете эту ошибку, потому что xsession уже запускается, и Вы пытаетесь выполнить команду из xsession на tty7.
tty7 является пользовательским интерфейсом, который существует в ctrl + высокий звук + f7 (значение по умолчанию xsession).
tty1 является пользовательским интерфейсом, который существует в ctrl + высокий звук + f1 .
tty2 является пользовательским интерфейсом, который существует в ctrl + высокий звук + f2 ... и так далее.
tty1 - tty6 являются текстовыми сессиями, и можно войти в систему с именем пользователя и паролем на одном из этих экранов. После входа в систему можно выполнить команду startx
, и xsession запустится в tty7, если это не будет уже работать и tty8, если tty7 уже выполняет xsession.
Уровни выполнения:
Останов уровня выполнения 0 - Закрывает систему.
уровень выполнения 1 Однопользовательский режим - Режим для задач администрирования.
уровень выполнения 2, Графический многопользовательский с сетями - обычно Запускает систему.
уровень выполнения 3-5, Неиспользованный но настроенный то же, поскольку, Перезагрузка runlevel 2
уровня выполнения 6 - Перезагружает систему.
термин runlevel относится к режиму работы в одной из операционных систем компьютера, которые реализуют инициализацию system-v-стиля Unix. Традиционно, семь runlevels существуют, пронумерованные от нуля до шесть; хотя до десяти, от нуля до девять [необходима цитата], могут использоваться. S иногда используется в качестве синонима для одного из уровней. Только один "runlevel" выполняется на начальной загрузке - уровни выполнения не выполняются последовательно, т.е. или runlevel 2 ИЛИ 3 ИЛИ 4 выполняется, не 2 тогда 3 тогда 4. - en.wikipedia.org/wiki/Runlevel
Это просто означает в различном tty.
Quotying связанный вопрос:
Ubuntu по умолчанию имеет 7 tty's.
1-6
командная строка только, 7
выполнения Ваши X сессий (Ваш нормальный графический рабочий стол).
Для доступа к ним используйте это сочетание клавиш: Ctrl + Высокий звук + F1
(изменяющийся F1
к F1-F6 для доступа к терминалу, в котором Вы нуждаетесь)
Для возвращения к X сессиям (нормальный рабочий стол), используйте: Ctrl + Высокий звук + F7
after logging on to a text-mode console
просто означает входить в систему различного tty и вводить команду:
startx
QEMU + Buildroot минимальный пример
Мой любимый способ учиться, что что-то делает, путем создания минимального примера, который выполняет его.
На Ubuntu это твердо с секунды startx
мог бы конфликтовать с Вашим текущим рабочим столом.
https://askubuntu.com/a/519164/52975 делает предложение Xnest
, но с QEMU + Buildroot мы можем пойти еще более минимальные и создать микро дистрибутив только с установленным X11.
Таким образом, должно быть легче понять то, что продолжается.
Я описал создание дистрибутива в: https://unix.stackexchange.com/a/306116/32558
После того как у Вас есть изображение, работающее на QEMU, Вы запускаете на оболочке TTY.
Затем, когда Вы делаете:
root
startx
это запускает X11 GUI:
Теперь смотрите на источник для startx
в том дистрибутиве, который является просто сценарием оболочки.
Это - простая законченная обертка /usr/bin/xinit
, и это это передает /etc/X11/xinit/xinitrc
кому: xinit
.
Если Вы открываетесь /etc/X11/xinit/xinitrc
, это содержит следующие строки:
twm &
xclock -geometry 50x50-1+1 &
xterm -geometry 80x50+494+51 &
xterm -geometry 80x20+494-0 &
таким образом, мы видим, что это запускает:
twm
: очень простой и старый менеджер оконxclock
и xterm
который мы видим на экранеДля /usr/bin/xinit
, мы можем сделать:
man xinit
который говорит что:
Если никакая определенная клиентская программа не будет дана на командной строке, то xinit будет искать файл в корневом каталоге пользователя, названном .xinitrc для выполнения как сценарий оболочки для запуска клиентских программ. Если никакой такой файл не будет существовать, то xinit будет использовать следующее в качестве значения по умолчанию:
xterm -geometry +1+1 -n login -display :0
Если никакая определенная программа сервера не будет дана на командной строке, то xinit будет искать файл в корневом каталоге пользователя, названном .xserverrc для выполнения как сценарий оболочки для запуска сервера. Если никакой такой файл не будет существовать, то xinit будет использовать следующее в качестве значения по умолчанию:
X :0
Как примечания Rmano, startx является очень старым подходом. Путь назад, когда это использовалось, двоичный файл X11, был установлен корень setuid.
Я просто испытал это в VM и действительно, startx
сбои, как Вы описываете по умолчанию. chmod u+s /usr/lib/xorg/Xorg
фиксирует это все же.
Я не рекомендую делать Xorg
будьте корнем setuid. Мир переехал от этого на Серьезном основании. Но если Вы играете вокруг в одноразовом VM, это - то, как сделать startx
работа.