что делает команда startx?

При чтении о 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
задан 1 September 2014 в 01:23

4 ответа

startx запускает xsession или графический интерфейс, где вы видите экран входа в систему и что-то большее, чем просто консоль ascii (текстовый сеанс).

Вы получаете эту ошибку, поскольку xsession уже запущен, и вы пытаетесь выполнить команду изнутри xsession на tty7.

tty7 - это пользовательский интерфейс, который существует в ctrl + alt + f7 (по умолчанию xsession).

tty1 - это пользовательский интерфейс, который существует в ctrl + alt + alt .

tty2 - это пользовательский интерфейс, который существует на alt + alt + f7 . , , и т. д.

tty1 - tty6 - текстовые сеансы, и вы можете войти в систему с вашим именем пользователя и паролем на одном из этих экранов. После входа в систему вы можете запустить команду startx, и xsession начнется с tty7, если она еще не запущена, и tty8, если tty7 уже выполнил xsession.

Запустить Уровни:

run-level 0 Halt - выключает систему.

run-level 1 Однопользовательский режим - режим для административных задач.

Уровень 2 Графический многопользовательский с сетью - обычно запускает систему.

Уровень запуска 3-5 Не используется, но настроен так же, как уровень выполнения 2

Уровень запуска 6 Перезагрузка - Перезагружает system.

Термин runlevel относится к режиму работы в одной из компьютерных операционных систем, которые реализуют инициализацию Unix System V-style. Обычно существует семь уровней выполнения, нумеруемых от нуля до шести; хотя до десяти, от нуля до девяти [править], могут быть использованы. S иногда используется как синоним одного из уровней. Только один «уровень выполнения» выполняется при загрузке - уровни запуска не выполняются последовательно, то есть выполняется либо уровень выполнения 2 ИЛИ 3 ИЛИ 4, либо 2, затем 3, затем 4. - ru.wikipedia.org/wiki/Runlevel

9
ответ дан 24 May 2018 в 04:07
  • 1
    Thanx mchid это очень помогло мне, – jazzz 1 September 2014 в 00:16
  • 2
    но когда я входил в tty1 и выполнял $ startx, у меня появилось окно рабочего стола без какой-либо панели запуска и других параметров ... (на tty8) -ctrl + Alt + F8, то, что мой startx не был хорошо настроен или он показывает некоторые ограничения опции на startx (например, здесь только Desktop) – jazzz 1 September 2014 в 00:21
  • 3
    @jazzz Это ваша среда x по умолчанию. У вас, скорее всего, установлены несколько настольных сред. Вы должны иметь возможность CTRL + T, чтобы получить терминал, чтобы вы могли запускать команды типа unity или gnome-shell --replace или даже gnome-panel или metacity --replace. – mchid 1 September 2014 в 00:38
  • 4
    @jazzz Кроме того, если вы примете этот ответ, нажмите на значок слева, чтобы закрыть его. благодаря! – mchid 1 September 2014 в 00:46
  • 5
    жаль, что я опаздываю на другой запрос относительно этого --- новое окно, которое я получил от Ctrl + Alt + F8, как я уже говорил выше, похож на рабочую область? – jazzz 1 September 2014 в 19:04

Это просто означает в другом tty.

Вычисление связанного вопроса:

По умолчанию Ubuntu имеет 7 tty.

1-6 только в командной строке, 7 запускает ваш сеанс X (ваш обычный графический рабочий стол).

Для доступа к ним используйте эту комбинацию клавиш: Ctrl + Alt + F1

(сменив F1 на F1-F6, чтобы получить доступ к требуемому терминалу)

Чтобы вернуться к вашему сеансу X (обычный рабочий стол), используйте: Ctrl + Alt + Alt

after logging on to a text-mode console просто означает вход в другую tty и ввод команды:

startx
3
ответ дан 24 May 2018 в 04:07

Минимальный пример Buildroot

Мой любимый способ узнать, что что-то делает, это сделать минимальный пример, который его запускает.

На Ubuntu это сложно, так как второй startx может противоречить вашему текущему рабочему столу.

https://askubuntu.com/a/519164/52975 предлагает Xnest, но с помощью Buildroot мы можем пойти еще более минимально и создать микро-дистрибутив только с установленным X11 .

Таким образом, должно быть проще понять, что происходит.

Я описал создание дистрибутива по адресу: https://askubuntu.com/a/ 519164/52975

После того, как вы получили изображение, запущенное на QEMU, вы запускаете оболочку TTY.

Затем, когда вы выполните:

root
startx

он запускает графический интерфейс X11:

Теперь взгляните на источник для startx внутри этого дистрибутива, который является всего лишь сценарием оболочки.

Это простая оболочка над /usr/bin/xinit и что она проходит /etc/X11/xinit/xinitrc до xinit.

Если вы откроете /etc/X11/xinit/xinitrc, она содержит следующие строки:

[ f2]

, поэтому мы видим, что он запускается:

[d1 9] twm: очень простой и старый менеджер окон xclock и xterm, который мы видим на экране

Для /usr/bin/xinit мы можем сделать:

man xinit
[d23 ], в котором говорится:

Если в командной строке не указана конкретная клиентская программа, xinit будет искать файл в домашнем каталоге пользователя, который называется .xinitrc, для запуска в качестве сценария оболочки для запуска клиентских программ. Если такой файл не существует, xinit будет использовать следующее по умолчанию:
xterm  -geometry  +1+1  -n  login  -display  :0

Если в командной строке не указана какая-либо конкретная клиентская программа, xinit будет искать файл в доме пользователя каталог под названием .xinitrc для запуска в качестве сценария оболочки для запуска клиентских программ. Если такой файл не существует, xinit будет использовать следующее по умолчанию:

X  :0
0
ответ дан 24 May 2018 в 04:07

Как отмечает Рмано, startx - очень старый подход. Еще раз, когда это было использовано, двоичный файл X11 был установлен setuid root.

Я просто попробовал это в виртуальной машине и, действительно, startx не удалось, как вы описали, по умолчанию. chmod u+s /usr/lib/xorg/Xorg исправляет это.

Я не рекомендую делать Xorg setuid root. Мир отошел от этого для Доброго Разума. Но если вы играете в кипучей виртуальной машине, вот как startx работает.

0
ответ дан 24 May 2018 в 04:07

Другие вопросы по тегам:

Похожие вопросы: