Автор Тема: Пара вопросов по display manager  (Прочитано 10428 раз)

Оффлайн Grommit

  • Давно тут
  • **
  • Сообщений: 83
Здравствуйте!
За недостатком IT-компетентности, сегодня поимел небольшой секс с системой.
Установлен Centaurus 7 со времен его бета версий, обновленный до branch 8.0
Выдался час свободного времени и захотелось посмотреть kde5. Установил его, потыкал (кстати, не плох, имхо), решил, что для меня в нём нет ничего очень нужного, чего бы не было в Mate. Удалил.

После перезагрузки ноутбука появился какой то другой display manager, который не захотел запускать Mate. Попытавшись удалить KDM, выяснилось, что это вовсе не он, а какой то SDDM. Не скажу почему (стыдно), но я удалил Lightdm. Установил его снова, но не весь, а только пакет lightdm 1.16.7 и удалил SDDM.

После перезагрузки не запустился x-server. В консоли были сообщения о неудачном запуске lightdm и строка типа "A start job is running for wait for plymoutch boot boot screen to quit"  с бесконечным отсчетом времени и невозможности доступа к командной строке.

Мечтая вернуть LightDM или любой другой рабочий DM, путем активного гуглежа определил, что это баг http://bugs.altlinux.org/30288. Запустил систему с runlevel 3, что позволило работать с консолью. После еще более активного гулежа, так и не нашел, куда можно прописать DM, запускаемый системой по умолчанию. Поиски в etc/X11 не привели к конфигу в котором можно это сделать, но нашелся файл prefdm, который вроде берет информацию о DM из /etc/sysconfig/desktop, которого, в свою очередь, не существует.

Доустановив недостающие компоненты lightdm воскрес.
В связи с вышесказанным два вопроса:
Зачем при установке другой ДЕ в Altlinux без спроса меняется display manager? И если так, то как можно настроить запуск желаемого DM?
« Последнее редактирование: 23.10.2016 13:18:44 от Grommit »

Оффлайн Антон Мидюков

  • alt linux team
  • ***
  • Сообщений: 4 119
  • antohami@
Re: Пара вопросов по display manager
« Ответ #1 : 23.10.2016 13:36:01 »
Зачем при установке другой ДЕ в Altlinux без спроса меняется display manager? И если так, то как можно настроить запуск желаемого DM?

Не другой DE, а другого DM, вместе с KDE вы установили SDDM. По-умолчанию, запуском DM занимается prefdm.service. Он будет запускать последний установленный DM. Но вы можете вместо prefdm (на p8 по крайней мере точно) использовать конкретный DM service (в вашем случае lightdm). Для этого:
1. Отключаем prefdm
systemctl disable prefdm
2. Включаем lightdm
systemctl enable lightdm
3. Перезагружаемся
« Последнее редактирование: 23.10.2016 15:07:30 от Антон Мидюков »

Оффлайн Skull

  • Глобальный модератор
  • *****
  • Сообщений: 18 696
    • Домашняя страница
    • Email
Re: Пара вопросов по display manager
« Ответ #2 : 23.10.2016 14:15:23 »
Для lightdm нужен ещё lightdm-gtk-greeter.
Андрей Черепанов (cas@)

Оффлайн Grommit

  • Давно тут
  • **
  • Сообщений: 83
Re: Пара вопросов по display manager
« Ответ #3 : 23.10.2016 19:29:53 »
Антон Мидюков, Skull
Понятно, Спасибо!

Оффлайн Dickie

  • машинист безбашенного крана
  • Давно тут
  • **
  • Сообщений: 30
  • тише едешь - никому не должен...
    • Email
Re: Пара вопросов по display manager
« Ответ #4 : 16.08.2018 12:20:28 »
чтобы не плодить новых тем...

Вопросик: установил минимальный сервер, установил xfce4-full, lightdm вместе с greeting... что забыл сделать, чтобы грузилось не в консоль, а в xfce?
« Последнее редактирование: 16.08.2018 12:22:33 от Dickie »
Даже самый плохой день длится не более 24-х часов...

Оффлайн Skull

  • Глобальный модератор
  • *****
  • Сообщений: 18 696
    • Домашняя страница
    • Email
Re: Пара вопросов по display manager
« Ответ #5 : 16.08.2018 13:24:33 »
чтобы не плодить новых тем...

Вопросик: установил минимальный сервер, установил xfce4-full, lightdm вместе с greeting... что забыл сделать, чтобы грузилось не в консоль, а в xfce?
Не установили xinit и не сделали chkconfig dm on?
« Последнее редактирование: 16.08.2018 13:26:06 от Skull »
Андрей Черепанов (cas@)

Оффлайн Dickie

  • машинист безбашенного крана
  • Давно тут
  • **
  • Сообщений: 30
  • тише едешь - никому не должен...
    • Email
Re: Пара вопросов по display manager
« Ответ #6 : 16.08.2018 13:44:15 »
чтобы не плодить новых тем...

Вопросик: установил минимальный сервер, установил xfce4-full, lightdm вместе с greeting... что забыл сделать, чтобы грузилось не в консоль, а в xfce?
Не установили xinit и не сделали chkconfig dm on?
xinit установил, systemctl enable lightdm  делал...

# chkconfig dm on
Внимание: Отправляется запрос 'systemctl enable prefdm.service'.
Failed to enable unit: File /etc/systemd/system/display-manager.service already exists and is a symlink to /lib/systemd/system/lightdm.service.
Даже самый плохой день длится не более 24-х часов...

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 9 755
Re: Пара вопросов по display manager
« Ответ #7 : 16.08.2018 21:41:45 »
Не установили xinit и не сделали chkconfig dm on?
xinit установил, systemctl enable lightdm  делал...

# chkconfig dm on
Внимание: Отправляется запрос 'systemctl enable prefdm.service'.

:-) Ужас

Failed to enable unit: File /etc/systemd/system/display-manager.service already exists and is a symlink to /lib/systemd/system/lightdm.service.

Грубо и безгуглово:
Неудача включения юнита: Файл /etc/systemd/system/display-manager.service существует и это симлинк на /lib/systemd/system/lightdm.service

Лайв стартеркит xfce с systemd:
# ls -l /lib/systemd/system/display-manager.service
lrwxrwxrwx 1 root root 14 июн 12 09:06 /lib/systemd/system/display-manager.service -> prefdm.service

Вопросик: установил минимальный сервер, установил xfce4-full, lightdm вместе с greeting... что забыл сделать, чтобы грузилось не в консоль, а в xfce?

Проверьте, этот сервис поднят и активен?
Это должен быть симлинк на prefdm сервис,
# systemctl status display-manager | cat
● lightdm.service - Light Display Manager
   Loaded: loaded (/lib/systemd/system/lightdm.service; enabled; vendor preset: enabled)
   Active: active (running) since Thu 2018-08-16 20:48:17 UTC; 26min ago
     Docs: man:lightdm(1)
 Main PID: 751 (lightdm)
    Tasks: 4 (limit: 4915)
   CGroup: /system.slice/lightdm.service
           ├─751 /usr/sbin/lightdm
           └─759 X -nolisten tcp :0 -seat seat0 -auth /var/run/lightdm/root/:0 -nolisten tcp vt1 -novtswitch

авг 16 20:48:17 localhost.localdomain systemd[1]: Starting Light Display Manager...
авг 16 20:48:17 localhost.localdomain lightdm[751]: Error getting user list from org.freedesktop.Accounts: GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown: The name org.freedesktop.Accounts was not provided by any .service files
авг 16 20:48:17 localhost.localdomain systemd[1]: Started Light Display Manager.
авг 16 20:48:19 localhost.localdomain lightdm[765]: Error getting user list from org.freedesktop.Accounts: GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown: The name org.freedesktop.Accounts was not provided by any .service files
авг 16 20:48:19 localhost.localdomain lightdm[765]: pam_tcb(lightdm-autologin:session): Session opened for altlinux by (uid=0)

который и поднимает lightdm через /etc/X11/prefdm
# cat /lib/systemd/system/prefdm.service

[Unit]
Description=Display Manager
After=systemd-user-sessions.service getty@tty1.service plymouth-quit.service
Conflicts=getty@tty1.service

[Service]
ExecStart=/etc/X11/prefdm -nodaemon
Restart=always
RestartSec=0
IgnoreSIGPIPE=no

[Install]
Alias=display-manager.service
# tail -n23 /etc/X11/prefdm
if finddm sddm; then
preferred=sddm
elif finddm kdm; then
preferred=kdm
log=1
elif finddm gdm; then
preferred=gdm
elif finddm mdm; then
preferred=mdm
elif finddm wdm; then
preferred=wdm
elif finddm lxdm; then
preferred=lxdm
elif finddm lightdm; then
preferred=lightdm
elif finddm entrance; then
preferred=entrance
elif finddm xdm; then
preferred=xdm
fi

rundm $@
exit 1
« Последнее редактирование: 17.08.2018 03:55:27 от Speccyfighter »

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 9 755
Re: Пара вопросов по display manager
« Ответ #8 : 17.08.2018 05:45:04 »
Шо-то я с этим сытемды запутался:

Это симлинк
# ls -l /lib/systemd/system/display-manager.service
lrwxrwxrwx 1 root root 14 июн 12 09:06 /lib/systemd/system/display-manager.service -> prefdm.service
# cat display-manager.service

[Unit]
Description=Display Manager
After=systemd-user-sessions.service getty@tty1.service plymouth-quit.service
Conflicts=getty@tty1.service

[Service]
ExecStart=/etc/X11/prefdm -nodaemon
Restart=always
RestartSec=0
IgnoreSIGPIPE=no

[Install]
Alias=display-manager.service
# cat prefdm.service

[Unit]
Description=Display Manager
After=systemd-user-sessions.service getty@tty1.service plymouth-quit.service
Conflicts=getty@tty1.service

[Service]
ExecStart=/etc/X11/prefdm -nodaemon
Restart=always
RestartSec=0
IgnoreSIGPIPE=no

[Install]
Alias=display-manager.service

Но я не понимаю, как может быть один алиас на два сервиса:
# cat lightdm.service
[Unit]
Description=Light Display Manager
Documentation=man:lightdm(1)
Conflicts=getty@tty1.service plymouth-quit.service
Conflicts=xdm.service gdm.service kdm.service lxdm.service slim.service sddm.service
After=systemd-user-sessions.service getty@tty1.service plymouth-quit.service

[Service]
ExecStart=/usr/sbin/lightdm
Restart=always
IgnoreSIGPIPE=no
BusName=org.freedesktop.DisplayManager

[Install]
Alias=display-manager.service
WantedBy=graphical.target

Сейчас в лайве xfce
# systemctl status prefdm
● prefdm.service - Display Manager
   Loaded: loaded (/lib/systemd/system/prefdm.service; disabled; vendor preset: disabled)
   Active: inactive (dead)
# systemctl status display-manager
● lightdm.service - Light Display Manager
   Loaded: loaded (/lib/systemd/system/lightdm.service; enabled; vendor preset: enabled)
   Active: active (running) since Thu 2018-08-16 20:48:17 UTC; 8h ago
     Docs: man:lightdm(1)
 Main PID: 751 (lightdm)
    Tasks: 4 (limit: 4915)
   CGroup: /system.slice/lightdm.service
           ├─751 /usr/sbin/lightdm
           └─759 X -nolisten tcp :0 -seat seat0 -auth /var/run/lightdm/root/:0 -nolisten tcp vt1 -novtswitch
# grep 'display-manager\|prefdm\|lightdm\|graphical\|multi-user' ./list-unit-files.txt
display-manager.service                     enabled 
lightdm.service                             enabled 
prefdm.service                              disabled
graphical.target                            static   
multi-user.target                           static   

И если display-manager.service это симлинк на prefdm.service, то почему запускается lightdm.service, а не prefdm. По моему разумению должен был возникнуть конфликт между prefdm (на него симлинк) и lightdm (в нём алиас). Сработал алиас во включенном lightdm.service? А как же быть тогда с симлинком на prefdm?


На системах с sysv всё просто и однозначно как две копейки:

dm запускает rundm
# grep rundm ./etc/rc.d/init.d/dm
start_daemon --lockfile "$LOCKFILE" --expect-user root --no-announce -- rundm $args --
stop_daemon --lockfile "$LOCKFILE" --expect-user root --no-announce -- rundm
status --expect-user root -- rundm

rundm запускает prefdm
# strings ./usr/sbin/rundm | grep prefdm
/etc/X11/prefdm

а prefdm запускает установленный *dm по приоритету
# tail -n23 /etc/X11/prefdm
if finddm sddm; then
preferred=sddm
elif finddm kdm; then
preferred=kdm
log=1
elif finddm gdm; then
preferred=gdm
elif finddm mdm; then
preferred=mdm
elif finddm wdm; then
preferred=wdm
elif finddm lxdm; then
preferred=lxdm
elif finddm lightdm; then
preferred=lightdm
elif finddm entrance; then
preferred=entrance
elif finddm xdm; then
preferred=xdm
fi

rundm $@
exit 1

Оффлайн Антон Мидюков

  • alt linux team
  • ***
  • Сообщений: 4 119
  • antohami@
Re: Пара вопросов по display manager
« Ответ #9 : 17.08.2018 08:11:48 »
авг 16 20:48:17 localhost.localdomain lightdm[751]: Error getting user list from org.freedesktop.Accounts: GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown: The name org.freedesktop.Accounts was not provided by any .service files

Наверное, нужно установить accountsservice.

Оффлайн Антон Мидюков

  • alt linux team
  • ***
  • Сообщений: 4 119
  • antohami@
Re: Пара вопросов по display manager
« Ответ #10 : 17.08.2018 08:14:06 »
Speccyfighter, prefdm многими dm уже не используется, включая lightdm. В ближайшем будущем он будет нужен только на sysV.

Оффлайн Антон Мидюков

  • alt linux team
  • ***
  • Сообщений: 4 119
  • antohami@
Re: Пара вопросов по display manager
« Ответ #11 : 17.08.2018 08:16:37 »
В сыстемд логика такая: если display-manager.service отсутствует, запускается dm.service, который запускает prefdm.service. display-manager.service должен быть симлинком на lightdm.service

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 9 755
Re: Пара вопросов по display manager
« Ответ #12 : 17.08.2018 08:26:37 »
В сыстемд логика такая: если display-manager.service отсутствует, запускается dm.service, который запускает prefdm.service.

Понял, Антон. Спасибо за подсказку.

display-manager.service должен быть симлинком на lightdm.service

Слушай, Антон, а почему он тогда в этом образе симлинком на prefdm?
# ls -l /lib/systemd/system/display-manager.service
lrwxrwxrwx 1 root root 14 июн 12 09:06 /lib/systemd/system/display-manager.service -> prefdm.service

Оффлайн Антон Мидюков

  • alt linux team
  • ***
  • Сообщений: 4 119
  • antohami@
Re: Пара вопросов по display manager
« Ответ #13 : 17.08.2018 09:29:31 »
Слушай, Антон, а почему он тогда в этом образе симлинком на prefdm?

Оказывается, так себя ведёт только lightdm. sddm, например, запускается через prefdm. Каким образом запускается lightdm.service пока вопрос. Возможно, так собрали... Смущает:
/etc/systemd/system/graphical.target.wants/lightdm.service

Наверное, через него lightdm.service и запускается вперёд prefdm. Как такое могло получиться, что
/lib/systemd/system/display-manager.service -> prefdm.service
и в тоже время:
/etc/systemd/system/graphical.target.wants/lightdm.service

Ума не приложу. Надо логи сборки регулярки изучать. Очень странный результат сборки. Воспроизвести такую комбинацию у меня пока не получилось.

Оффлайн Dickie

  • машинист безбашенного крана
  • Давно тут
  • **
  • Сообщений: 30
  • тише едешь - никому не должен...
    • Email
Re: Пара вопросов по display manager
« Ответ #14 : 17.08.2018 09:47:17 »
Друзья, с линками-симлинками и прочим всё в порядке.
# service dm start приводит к нужному результату - грузится xfce с гритингом и всеми сопутствующими - вообще без проблем.


Проблема в другом: при загрузке системы я получаю приглашение в текстовую консоль вместо графической системы... Где-то я что-то забыл сделать...
Даже самый плохой день длится не более 24-х часов...