Читая об Ubuntu, я нашел следующее утверждение .....
Если диспетчер отображения не запускается по умолчанию на уровне запуска по умолчанию, вы можете запустить X другим способом, после входа в консоль текстового режима, запустив startx из командной строки.
Что значит быть уровнем запуска по умолчанию? И когда я попробовал это на своем терминале, я получил это:
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
целую вечность - это объясняет много странного поведения, которое вы можете иметь.Если вы хотите поэкспериментировать и почувствовать старые добрые времена, лучше всего сделать следующее:
А) установить
Xnest
иfvwm
. Xnest - это графический сервер внутри сервера, своего рода сервер, который открывается как окно в вашей обычной системе. Fvwm - очень простой оконный менеджер, который тогда был очень популярен. Вам также понадобятся старые растровые шрифты.B) напишите этот файл где-нибудь, например, в вашем домашнем каталоге, и назовите его
~/test
:C) Выполнить (обратите внимание:
startx
обычно запускается сначала командой клиента, затем двойным тире, а затем командой сервера. Как я уже говорил, большинство новых систем не имеют разумных значений по умолчанию дляstartx
одного).... и у вас есть экран рабочей станции 80-х годов:
(Вы можете получить меню, нажав на рабочий стол "Xnest").
... и если вы чувствуете, что вам по-настоящему хочется приключений, вы можете запустить собственный сеанс на другой виртуальной консоли (прочитайте другие ответы), перейдя к одному из них с помощью Ctrl-Alt-F1, войдите в систему и
который обычно открывается по Ctrl-Alt-F8.
Обратите внимание : современные среды рабочего стола не предназначены для одновременной работы одного и того же пользователя на двух разных консолях. Так что не используйте
gnome-shell
илиunity
или современные вещи при выполнении этих экспериментов, или вы можете испортить вашу конфигурацию.Примечания:
(1) Говоря о 1980-90 годах здесь.
(2) Например, у меня был ноутбук с 256 КБ ОЗУ. Это было мучительно медленно в (B & W!) Графическом интерфейсе, но быстро в консоли. Так что я сделал большую часть моей работы (редактирование
C
,LaTeX
и подобные файлы) в консольном режиме, и переключается в графической среде только тогда , когда действительно необходимо.источник
startx
запускает xsession или графический интерфейс, где вы видите экран входа в систему и что-то большее, чем просто консоль ascii (текстовая сессия).Вы получаете эту ошибку, потому что xsession уже запущен, и вы пытаетесь выполнить команду изнутри xsession на tty7.
tty7 является пользовательским интерфейсом , который существует при ctrl+ alt+ f7( по умолчанию Xsession).
tty1 это пользовательский интерфейс , который существует при ctrl+ alt+ f1.
tty2 это пользовательский интерфейс , который существует при ctrl+ alt+ f2. , , и так далее.
tty1 - tty6 являются текстовыми сессиями, и вы можете войти под своим именем пользователя и паролем на одном из этих экранов. После входа в систему вы можете запустить команду,
startx
и xsession запустится в tty7, если он еще не запущен, и в tty8, если tty7 уже запускает xsession.Уровни запуска:
run-level 0 Halt - Выключение системы.
run-level 1 однопользовательский режим - режим для административных задач.
run-level 2 Графический многопользовательский режим с сетевым подключением - нормально запускает систему.
уровень запуска 3-5 Не используется, но настроен так же, как уровень запуска 2
run-level 6 Reboot - перезагружает систему.
Термин «уровень выполнения» относится к режиму работы в одной из операционных систем компьютера, которые реализуют инициализацию в стиле Unix System V. Традиционно существует семь уровней выполнения, пронумерованных от нуля до шести; хотя может быть использовано до десяти, от нуля до девяти. S иногда используется как синоним одного из уровней. При загрузке выполняется только один «уровень запуска» - уровни запуска не выполняются последовательно, т. Е. Выполняется либо уровень запуска 2, либо 3, либо 4, а не 2, затем 3, а затем 4. - en.wikipedia.org/wiki/Runlevel
источник
unity
илиgnome-shell --replace
или дажеgnome-panel
илиmetacity --replace
.Это просто означает в другом tty .
Цитирую связанный вопрос:
По умолчанию Ubuntu имеет 7 tty.
1-6
только для командной строки,7
запускает ваш сеанс X (ваш обычный графический рабочий стол).Чтобы получить к ним доступ, используйте эту комбинацию клавиш: Ctrl+ Alt+F1
(переход
F1
на F1-F6 для доступа к нужному терминалу)Чтобы вернуться к сеансу X (обычному рабочему столу), используйте: Ctrl+ Alt+F7
after logging on to a text-mode console
просто означает вход в другой tty и ввод команды:источник
Как отмечает Rmano, startx - очень старый подход. Еще в то время, когда это использовалось, в бинарном файле X11 был установлен setuid root.
Я только что опробовал это на виртуальной машине, и действительно
startx
, по умолчанию , не получается.chmod u+s /usr/lib/xorg/Xorg
исправляет это все же.Я не рекомендую делать
Xorg
быть setuid root. Мир отошел от этого по разумной причине. Но если вы играете в одноразовой виртуальной машине, это то, как заставитьstartx
работать.источник
QEMU + Buildroot минимальный пример
Мой любимый способ узнать, что что-то делает, это сделать минимальный пример, который запускает это.
В Ubuntu это сложно, поскольку секунда
startx
может конфликтовать с вашим текущим рабочим столом./ubuntu//a/519164/52975 предлагает
Xnest
, но с QEMU + Buildroot мы можем пойти еще дальше и создать микро дистрибутив с установленным только X11.Таким образом, должно быть легче понять, что происходит.
Я описал создание дистрибутива по адресу: /unix//a/306116/32558.
После того, как вы запустили образ в QEMU, вы запускаете оболочку TTY.
Затем, когда вы делаете:
он запускает графический интерфейс X11:
Теперь взгляните на источник
startx
внутри этого дистрибутива, который является просто сценарием оболочки.Это простая оболочка
/usr/bin/xinit
, и она переходит/etc/X11/xinit/xinitrc
кxinit
.Если вы открываете
/etc/X11/xinit/xinitrc
, он содержит следующие строки:Итак, мы видим, что он запускается:
twm
: очень простой и старый оконный менеджерxclock
иxterm
который мы видим на экранеИбо
/usr/bin/xinit
мы можем сделать:что говорит о том, что:
источник