LINUX.ORG.RU

Несколько графических сессий на разных консолях.


1

1

Я очень далёк от графической подсистемы и её настройки. Так же довольно мало опыта использования линукс в многопользовательском режиме на реальных консолях (в основном доступ делался по VNC-подобным технологиям), поэтому опишу как можно обще.

В ОС заведено два пользователя. При старте системы на 7-й консоли запускается графическое окружение для пользователя №1 (основной пользователь ОС). Если оно «падает» - после перезапуска оказывается на 8-й консоли, да там и остаётся.

Я хочу: запустить вторую графическую оболочку на 6-й консоли и войти под вторым пользователем системы. ОС - минт Оливия и первый пользователь всегда использует окружение по дефолту, в то время как я предпочитаю FVWM-Crystal и хочу _при_необходимости_ стартовать себе отдельное окружение на выбраной консоли (например, 6), притом так, чтобы это не мешало основному пользователю, а у меня был нормальный графический интерфейс. Основная задача сделать так, чтобы мы могли переключаться между пользователями с помощью Ctrl+Alt+Fx.

Буду благодарен за помощь!

★★

Не знаю как в ОС - минт Оливия, а в Слаке есть файл /etc/inittab.

Читать раздел

# These are the standard console login getties in multiuser mode:

В вашей ОС, вероятно, что то подобное(?)

anonymous ()

А чем DM не устраивает? Заводишь менеджер сессий в своём FVWM и живёте в одних иксах. ЕМНИП, проприетарный драйвер невидии не умел работать с несколькими Xorg одновременно. Можно, конечно, и завести разные сервера для каждого пользователя, только тогда тебе нужно будет пинать startx из ~/.bashrc; посмотри, как это сделано у меня, например.
Работает так: Ctrl+F2 в обычную tty, там логинишься, т. к. у меня пользовательский шелл — bash, он смотрит на ~/.bash_profile, а оттуда сорсится ~/.bashrc. Если в текущем инстансе шелла DISPLAY ещё не объявлена и это именно 2-я tty, стартуем иксы. Ты можешь добавить там vt9 в ключи после --, это должно спавнить твои иксы на девятой консоли. Шестая обычно не графическая и иксы там не взлетят.

С файлом xorg.conf.suffix можешь не возиться, это не обязательно, Xorg будет использовать первый подходящий из дефолтных путей. Просто я время от времени переключаюсь между двумя конфигами, поэтому написал обёртку на выход из WM, которая выбирает конфиг с конкретным суффиксом.

Deleted ()
Последнее исправление: fargred (всего исправлений: 1)
Ответ на: комментарий от Deleted

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

NeverLoved ★★★★★ ()
Ответ на: комментарий от Deleted

Я очень далёк от графической подсистемы и её настройки. Так же довольно мало опыта использования линукс в многопользовательском режиме на реальных консолях.

Какая разница как давно человек зареган на лоре, если сам говорит что в конкретно этой теме он несведущ?

NeverLoved ★★★★★ ()
Ответ на: комментарий от Kotolegokot

Возможно, даже скрытый гений, просто никогда не было необходимости в этом вашем гугле.

anonymous ()
Ответ на: комментарий от Deleted

Большое спасибо за ответ, хотя я действительно не всё понял. NeverLoved бвл прав: срок моей регистрации не гарантирует понимая в плохо изученой области. К сожалению, всё моё общение с иксами было сведено к установке и однократной настройке проприентарного дровчика и то, если это действительно небходимо. Самое сложное, что я делал - настраивал дублирование вывода на второй монитор (стандартная опция драйвера не работала, так как это были две ЖК-матрицы разных форматов и пришлось править конфиг напрямую).

Про параметр «vt№» знаю, и даже как-то на работе (ради смеху) смог стартовать иксы на 2-й tty загрузившись в рекавери и вписав руками командную строку которую подсмотрел в «ps ax | grep». Странно, ибо это расходится с Вашими словами о том, что так не выйдет, но работать на 2-й tty я не смог - сильно глючила. К тому же это было не на дебьяновом дистре. Ctrl+F2?... У меня не работает... Видимо потому что у меня не Nautilus, а Nemo.

Но сейчас проблема в другом. Я работаю не на тестовом компе на своей работе, а на уже рабочей лошадке. Первый и основной пользователь этого ноутбука далёк от мира юникс и уже успел привыкнуть к стандартной системе логина и управления. Я не хочу обучать этого пользователя выбору своего графического окружения - пускай для него всё останется «как было», также я не хочу эксперементировать - любые риски неприемлимы и я должен чётко понимать что и как делаю... Я понимаю, просить готовое решение - не правильно. Я должен для начала понять принцип, а уже потом реализовать своими руками. Вообще, для меня был-бы идеален такой вариант: Ctrl+Alt+F9 -> если окружения нет: идём в tty1, логинимся, выполняем, например, startx_4me и снова на 9-ю консоль. Это реализуется просто, однако я не понимаю, с какой стороны подойти к этому вопросу.

zzdnx ★★ ()
Ответ на: комментарий от zzdnx

Странно, ибо это расходится с Вашими словами

Да, я ошибся.

но работать на 2-й tty я не смог - сильно глючила.

Потому что поднять иксы командой Xorg недостаточно. Во-первых, там есть что-то вроде внутрииксовой аутентификации (между X-сервером и X-клиентом), которая прозрачна для тебя, если ты используешь startx, плюс для нормальной работы с дисками, виджетами выключения/перезагрузки нужна поддержка consolekit, т. е. запущенная сессия от пользователя. Её делает либо systemd либо ck-launch-session.
О том, как стартут иксы, я написал там же.

Ctrl+F2?

Если в runlevel default не стартует xdm, то ты остаёшься на tty1, когда загрузка завершится. Между tty1-6 можно переключаться без Alt, он нужен, только когда ты из иксов переключаешься во фреймбуферную tty. Раз ты предлагаешь оставить DM в автозагрузке, то придётся жать и Alt тоже, естессно.

далёк от мира юникс

Как и мы.

любые риски неприемлимы и я должен чётко понимать что и как делаю

Спрашивай, что непонятно.

однако я не понимаю, с какой стороны подойти к этому вопросу.

Про ~/.bashrc я тебе уже написал.

Deleted ()

бедняги-хуцкеры понаустанавливают всяких красноглазых поделок, а потом бьются над задачами, которые в KDE уже решены за пользователя

anonymous ()
Ответ на: комментарий от anonymous

Без меня меня женили или "а КДЕ и так умеет"? о_О

которые в KDE уже решены за пользователя

А что, КДЕ мне поставит этот фоункционал из коробки? И что мне делать, если меня не устаривает дефолтная комплектация или настройка? Или разработчики КДЕ уже давно читают мои мысли и лучше меня знают что мне нужно как конечному пользователю? Спасибо, но в жопу такую логику!

zzdnx ★★ ()
Ответ на: комментарий от Deleted

Написал скрипт такого содержания:

#!/bin/bash

[ ! -v DISPLAY -a "`tty`" = /dev/tty2 ] && {
exec startx -- vt9 -config xorg.conf -nolisten tcp &>~/x.log
}
Результат уже хорош: стартует окружеие на 9-й консоли. Проблема вот какая: оуружение стартует то же самое, что у первого пользователя, а мне охота в FVWM всегда попадать - он памяти ест минимум, да и привык я к его трюкам с функциональностью управления окнами... Можно-ли через startx принудительно указать запуск fvwm каждый раз таким образом, чтобы это не касалось основного пользователя? Буду благодарен за помощь и разъяснения. (У меня startX не даёт хэлпа, а man`ы на EN, который я очень плохо ферштейню...)

zzdnx ★★ ()
Последнее исправление: zzdnx (всего исправлений: 1)
Ответ на: комментарий от zzdnx

Проблема вот какая: оуружение стартует то же самое, что у первого пользователя, а мне охота в FVWM всегда попадать

А статьи по ссылке мы читаем, как завещала юичка.

4. After X is up, xinit launches ~/.xinitrc file and all the commands from there. Window manager (WM) is also intended to run from there.

Сказал же — читай, ходи по ссылкам.

-config xorg.conf

Можно опустить. Ты же конфиги с разными суффиксами не используешь? Нет. И скобочки я бы убрал. В случае, когда у тебя после && идёт единственная команда, скобки не нужны. В общем, я бы переделал вот так:

[ ! -v DISPLAY -a "`tty`" = /dev/tty2 ] && \
    exec startx -- vt9 -nolisten tcp &>~/x.log

Deleted ()
Ответ на: комментарий от Deleted

Здравствуйте.

Когда-то давно в конце девяностых - начале двухтысячных я работал пользовался в линуксе несколькими графическими консолями.

Сейчас, сижу на Linux Mint 16 Cinnamon и возникла необходимость тоже иметь возможность включить вторую графическую консоль.

Мне сначало казалось, что команда запуска второй сессии иксов должна выглядеть как-то вроде «xinit — :2» или «startx — :2» но ничего подобного не получалось.

Долго искал информацию и нашёл описание в этой теме.

Вопрос такой:

Зачем нужна такая длинная строка: «startx — vt9 -nolisten tcp &>~/x.log»

Ведь для запуска второй графической консоли достаточно только с любого tty набрать: «startx — vt9»

Что делает опция "-nolisten" и причём тут «tcp»?

В MAN`е я ответа не нашёл.

Кроме того, при запуске второй консоли система выдаёт сообщение, что оконный менеджер на девятом виртуальном терминале работает в режиме программного рендеринга без аппаратного ускорения.

Правильно ли я понял - это проблемма с драйверами и эту ситуацию никак не изменить?

Hemulo ()
Ответ на: комментарий от zzdnx

zzdnx

дровчика


Не делай так больше, ну серьёзно какое может быть ласкательно-уменьшительное слово для чисто технического термина?

zzdnx

Это реализуется просто, однако я не понимаю, с какой стороны подойти к этому вопросу.

Ты ещё не видел реализацию и уже судишь о её простоте.

yurikoles ★★★ ()
Ответ на: комментарий от Hemulo

Зачем нужна такая длинная строка: «startx — vt9 -nolisten tcp &>~/x.log»

X-сервер по умолчанию может иметь клиентов как локальных, так и удалённых. Основной способ подключения удалённых клиентов — через TCP порт, который X-сервер слушает. Проблема в том, что, если копьютер смотрит хотя бы одним интерфейсом прямо в интернет, X светит туда своей голой жопой, потому что слушать на каком-то определённом интерфейсе он не умеет, и слушает везде, при этом его TCP ничем не защищён и представляет потенциальную уязвимость.
&>/x.log просто пишет лог загрузки иксов в домашнюю папку. Ведь моя цель была какая — вынести всю конфигурацию иксов как можно дальше в пространство пользователя, для того, чтобы удобнее переносить её между рабочими станциями, в том числе теми, где прав рута у пользователя нет.

это проблемма с драйверами и эту ситуацию никак не изменить?

Да.

Deleted ()
Ответ на: комментарий от Hemulo

Что делает опция "-nolisten" и причём тут «tcp»?
В MAN`е я ответа не нашёл.

Да ты что?

man xorg

This connection type can be disabled with the -nolisten option (see the Xserver(1) man page for details).

man xserver

-nolisten trans-type disables a transport type. For example, TCP/IP connections can be disabled with -nolisten tcp. This option may be issued mul‐tiple times to disable listening to different transport types.

anonymous ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.