LINUX.ORG.RU
ФорумAdmin

Systemd и несколько графических консолей

 , ,


0

2

Мне нужна помощь по настройки systemd, у меня что-то не получилось.

Смысл такой: 1)на tty1 (она и основная всегда) - запустить Xсервера с оконным менеджером, ну далее GUI софтина грузиться.

2)на tty2 (вспомогательная) грузиться полноценный дисплейный менеджер (sddm).

3)с tty3 и все остальные недоступны.

4)И главное если пользователь перешел на tty2 то его нужно вернуть обратно скажем через 3 минуты (ну или по условию) в tty1.

Что смог сделать: по пункту 1) через agetty@tty1 сделал свой сервис там настроил автологин, а в bash_profile запуск X и так далее (вобщем коряво получилось) но работает.

по пункту 2) перенастроил в конфигах sddm.conf чтобы грузился на tty2.

по пункту 3) в login.conf ограничил количество консолей.

по пункту 4) нету соображений вообще пока.

Проблемы:

после того как я добавил sddm на tty2 на tty1 перестал грузиться X11 говорит что дисплей 0 занят (как с этим бороться не знаю пока).

Очень надеюсь на помощь, много времени убил, а результата нет.

Ответ на: комментарий от droserasprout

Невыходит

Другая ошибка теперь.

[   158.428] _XSERVTransSocketUNIXCreateListener: ...SocketCreateListener() failed
[   158.428] _XSERVTransMakeAllCOTSServerListeners: server already running
[   158.428] (EE) 
Fatal server error:
[   158.428] (EE) Cannot establish any listening sockets - Make sure an X server isn't already running(EE) 
[   158.428] (EE) 
Please consult the The X.Org Foundation support 
	 at http://bugs.rosalinux.ru/
 for help. 
[   158.428] (EE) Please also check the log file at "/var/log/Xorg.0.log" for additional information.
[   158.428] (EE) 
[   158.435] (EE) Server terminated with error (1). Closing log file.

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

не знаю.
я таким интересовался году в 2000.

потом понял что не надо ломать то, что настроено «дистрибутивщиками»

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

они здесь не причем, это нестандартное использование xserver

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

Разобрался как несколько запустить x серверов Оказывать нужна указывать разные номера дисплеев и все будет хорошо, все хорошо запускается от скрипта startx --:Ndisp но как написать сервис для systemd?

Пытался так: [Service] ExecStart=/bin/su user -c startx — :12

Не выходит startx не хочет запускаться говорит, что авторизация не прошла, а через xinit не стартует X server

Пока как-то так....

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

Ошибка

При запуске X из под непривилегированного пользователя получаю ошибку: Authentication failed - cannot start X server. Perhaps you do not have console ownership?

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

пускай родной иксовый вм или приложение иксовое любое. должно работать

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

поковырял в /etc/pam.d/xserver был закоментирован auth required pam_console.so

Раскоментирова его получил следующую ошибку xf86EnableIOPorts: failed to set IOPL for I/O (Operation not permitted) Поясните природу pam ? что - это такое? и зачем он нужен.

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

Ознакомился с Pluggable Authentication Modules.

Я использовал сервис с Из этого топика, но запуском у меня является startx — :$XDG_VTNR.

Проблема получается в

User=<USER>
PAMName=login 

мой пользователь USER не может зайти. для авторизации используются правила из pam.d/login

#%PAM-1.0
auth [user_unknown=ignore success=ok ignore=ignore default=bad] pam_securetty.so
auth       include      system-auth
account    required     pam_nologin.so
account    include      system-auth
password   include      system-auth
session	   required	pam_selinux.so close
session    required     pam_loginuid.so
-session    optional     pam_console.so
session    required	pam_selinux.so open
session    optional     pam_keyinit.so force revoke
session    include      system-auth
-session    optional     pam_ck_connector.so

как понять какое правило мешает?

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

проблема наверное у меня из-за того что я не могу от обычного пользователя запускать X

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

Так, извини, я совершенно забыл про этот тред.

Вообще, конечно, наиболее правильно было бы запускать все иксы (и первые, и вторые) из DM. То, что мы делаем — немного костыль, потому что DM, которым можно адекватно управлять из скриптов, ещё никто не написал. Ну да ладно.

Что значит «не может зайти»? Покажи системный лог после попытки входа. Заодно покажи строчку из /etc/passwd, соответствующую твоей учётке (inb4, на всякий случай: нет, я не хочу тебя похачить, хэши паролей хранятся в другом месте).

И да, использовать startx в такой конфигурации неправильно — я написал в той теме, почему. Там нет никакого бага, это до сих пор не исправили и не исправят, просто session leader должен прибивать свою сессию. Используй xinit, как там кто-то написал в комментариях.

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

я нашел решение, но пока не так как хотел, но главное работает!

У меня даже получилось как ты говоришь т.е я перестал прикидываться DM, а использовал его, настроил на нем автологин, он для меня подготовил готового юзера который может работать в xsession.

А вот xsession я свою создал. Написав свое приложение оно Запускает WM и GUI-софтина и свой файл конфигурации в /usr/share/xsessions/myxsession.desktop. Как работает запуск xsession я понял только после разбора исходников DM. (оказалось все просто).

Все это решает мой 1) пункт задачи.

Все переходы по другим vtty я отключил настроив X11 - это решило мой 3) но немного не так как задумывалось, и автоматом решился 4) пункт задачи.

Остался 2) пункт, я его обошел, а именно поняв как грузится xsession, в своем приложение написал кнопку, которая запускает рабочие окружение точно так же как это делает DM, в итоге у меня параллельным процессом запускается DESKTOP (этого вполне достаточно). И сделал кнопку выключить рабочие окружение, вот здесь у меня пока не доработка, не понял пока из исходников DESKTOP, использовал исходники (MATE), как он выгружает запущенные им же приложения, поэтому оставил пока просто, закрываю свое приложение и закрываю свою x-сессию, при закрытие сессии все остальные приложения кроются сигналом SIGKILL - это конечно не хорошо, но я пока не понял как сделать правильно.

Так, что пока как-то так (коряво конечно), но я могу таким образом в любой дистрибутив свое ПО воткнуть. Спасибо за помощь!

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