Автор Тема: начальная инициализация консолей с systemd  (Прочитано 3288 раз)

Оффлайн Olej

  • Завсегдатай
  • *
  • Сообщений: 128
Начальная инициализация консолей (6 шт. или 7 шт. ... /dev/tty1 - /dev/tty7) в ранних системах делалась так (и по всем книжкам, в большинстве, описывается так) - конфигурационный файл /etc/inittab:
$ uname -r
2.6.18-92.el5
$ cat /etc/inittab
...
# Run gettys in standard runlevels
1:2345:respawn:/sbin/mingetty tty1
2:2345:respawn:/sbin/mingetty tty2
3:2345:respawn:/sbin/mingetty tty3
4:2345:respawn:/sbin/mingetty tty4
5:2345:respawn:/sbin/mingetty tty5
6:2345:respawn:/sbin/mingetty tty6
...
Это было так и тянется ещё из SunOS, Minix 2 и т.д.

Позже в Linux это делалось не так:
# uname -r
2.6.32.9-70.fc12.i686.PAE
# ls /etc/event.d/tty*
tty1  tty2  tty3  tty4  tty5  tty6                                                                                     
# cat /etc/event.d/tty6
...
respawn
exec /sbin/mingetty tty6
...

С переходом инициализации от sysinit к systemd начальная инициализация консолей снова меняется...
Где и как делается и посмотреть начальную инициализацию консолей с systemd?

P.S. Собственно, вопрос возник вот здесь в теме, чтобы не повторяться: Альт Линукс учебник Bash
« Последнее редактирование: 31.03.2017 16:13:26 от Olej »

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 31 483
  • Учиться .... Телепатами не рождаются, ими ....
    • Email
Там отдельный демон на каждую консоль, причём запускается создание ее в момент перехода на нее, а не сразу.

Оффлайн Olej

  • Завсегдатай
  • *
  • Сообщений: 128
Там отдельный демон на каждую консоль, причём запускается создание ее в момент перехода на нее, а не сразу.
Так где её (начальную инициализацию) найти "там"?

Я могу перейти в любую из 63-х текстовых консолей команой:
# chvt 3
...
# chvt 23
...
(1-я "chvt 3" - это полный эквивалент Ctrl+Alt+F3).

Но на консоли >6 или >7 результатом будет чёрный экран с мигающим курсором ... т.е. консоль есть, но там не запущена программа логина.

Можно сделать так:
$ sudo openvt -f -c25 -l login
А затем перейти в эту текстовую консоль и там зарегистрироваться:
# chvt 25
После чего (вернувшись, например, по Ctrl+Alt+F1):
$ who
olej     :0           2017-03-19 10:19 (:0)
root     tty25        2017-03-31 14:17
Здесь 2 залогиненных консоли.

Как посмотреть (или изменить) число начально запущенных (6, 7) консолей?

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

  • alt linux team
  • ***
  • Сообщений: 4 703
  • antohami@
На вики: https://www.altlinux.org/%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:HihinRuslan/Systemd

Но алгоритм вроде следующий с консолями. При запуске запускается 6 сервисов tty: getty@tty1 ... getty@tty6 А дисплэй-менеджер запускается на первой свободной консоли. Для того, чтобы дисплэй-менеджер запускался именно на 1 консоли в тело юнита включена строка:
Conflicts=getty@tty1.service

Так что изменяя эту строчку можно изменить номер консоли от 1 до 6, либо, удалив эту строчку, заставить запускаться на 7 консоли. А если включить getty@tty7, то будет на 8 запускаться :-)

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

  • alt linux team
  • ***
  • Сообщений: 4 703
  • antohami@
Для того, чтобы узнать какая служба запускает дисплей-менеджер:
systemctl status display-manager

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

Оффлайн Olej

  • Завсегдатай
  • *
  • Сообщений: 128
Но алгоритм вроде следующий с консолями. При запуске запускается 6 сервисов tty: getty@tty1 ... getty@tty6 А дисплэй-менеджер запускается на первой свободной консоли. Для того, чтобы дисплэй-менеджер запускался именно на 1 консоли в тело юнита включена строка:
Conflicts=getty@tty1.service
Всё, что касается GUI и дисплэй-менеджера мне, как-раз, не интересно ... и достаточно понятно.
Интерес именно в том, где и как запускаются 6 сервисов: getty@tty1 ... getty@tty6

Оффлайн Olej

  • Завсегдатай
  • *
  • Сообщений: 128
Но алгоритм вроде следующий с консолями. При запуске запускается 6 сервисов tty: getty@tty1 ... getty@tty6
За наводку спасибо...
А дальше по цепочке ;-) :

1.
[olej@dell mnt]$ man systemd-getty-generator
...
Цитировать
       3. systemd for Administrators, Part XVI: Gettys on Serial Consoles (and Elsewhere)
           http://0pointer.de/blog/projects/serial-console.html

2. systemd для администраторов
Цитировать
Lennart Poettering (автор)
Сергей Пташник (русский перевод)
Данный документ доступен на условиях лицензии CC-BY-SA 3.0 Unported
17 февраля 2017 г.
...
16 Запуск getty на последовательных (и не только) консолях . . . . . . 60
16.1 Виртуальные консоли . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   60
16.2 Последовательные консоли . . . . . . . . . . . . . . . . . . . . . . . . . . . .   61

Оффлайн Olej

  • Завсегдатай
  • *
  • Сообщений: 128
Подсказали:
Цитировать
В systemd это меняется в файле /etc/systemd/logind.conf через опцию "NAutoVTs=".

[root@dell systemd]# cat /etc/systemd/logind.conf
#  This file is part of systemd.
#
#  systemd is free software; you can redistribute it and/or modify it
#  under the terms of the GNU Lesser General Public License as published by
#  the Free Software Foundation; either version 2.1 of the License, or
#  (at your option) any later version.
#
# Entries in this file show the compile time defaults.
# You can change settings by editing this file.
# Defaults can be restored by simply deleting this file.
#
# See logind.conf(5) for details.

[Login]
#NAutoVTs=6
#ReserveVT=6
#KillUserProcesses=no
#KillOnlyUsers=
#KillExcludeUsers=root
#InhibitDelayMaxSec=5
#HandlePowerKey=poweroff
#HandleSuspendKey=suspend
#HandleHibernateKey=hibernate
#HandleLidSwitch=suspend
#HandleLidSwitchDocked=ignore
#PowerKeyIgnoreInhibited=no
#SuspendKeyIgnoreInhibited=no
#HibernateKeyIgnoreInhibited=no
#LidSwitchIgnoreInhibited=yes
#HoldoffTimeoutSec=30s
#IdleAction=ignore
#IdleActionSec=30min
#RuntimeDirectorySize=10%
#RemoveIPC=yes

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 31 483
  • Учиться .... Телепатами не рождаются, ими ....
    • Email
Так что изменяя эту строчку можно изменить номер консоли от 1 до 6, либо, удалив эту строчку, заставить запускаться на 7 консоли
Надо не тут менять, а то при первом обновлении снесёт ваши изменения.
Надо сделать так (от root):

cp /lib/systemd/system/prefdm.service /etc/systemd/system/dm.service 
 и закомментировать Conflicts=getty@tty1.service


Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 31 483
  • Учиться .... Телепатами не рождаются, ими ....
    • Email

Оффлайн Olej

  • Завсегдатай
  • *
  • Сообщений: 128
Надо не тут менять, а то при первом обновлении снесёт ваши изменения.
Это где о таком сказано? :
$ man logind.conf
...
cp /lib/systemd/system/prefdm.service /etc/systemd/system/dm.service
А вот здесь :-\:
[olej@dell ACCOUNTS]$ ls /lib/systemd/system/prefdm.service
ls: невозможно получить доступ к /lib/systemd/system/prefdm.service: Нет такого файла или каталога


Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 31 483
  • Учиться .... Телепатами не рождаются, ими ....
    • Email
Так редактирование  работа с системными файлами требует права root ;-)
« Последнее редактирование: 31.03.2017 21:21:22 от ruslandh »

Оффлайн Olej

  • Завсегдатай
  • *
  • Сообщений: 128
Так редактирование системных файлов требуют права root ;-)
Так редактирование настроек системы вообще требует прав root ;-)

systemd для администраторов
Цитировать
Lennart Poettering (автор)
Сергей Пташник (русский перевод)
Данный документ доступен на условиях лицензии CC-BY-SA 3.0 Unported
17 февраля 2017 г.
...
16 Запуск getty на последовательных (и не только) консолях . . . . . . 60
16.1 Виртуальные консоли . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   60
16.2 Последовательные консоли . . . . . . . . . . . . . . . . . . . . . . . . . . . .   61
Цитировать
Тем не менее, это поведение можно легко изменить, задавая параметр NAutoVTs= в файле logind.conf
...
Собственно, это все, что я хотел рассказать о последовательных портах, виртуальных консолях и запуске getty на них. Надеюсь, рассказ получился интересным.
Там действительно много интересного ... читайте, кого это заинтересует.

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 31 483
  • Учиться .... Телепатами не рождаются, ими ....
    • Email
Это где о таком сказано?
Если конфиг входит в rpm, то с большой вероятностью он будет изменён при обновлении пакета.
Где - не знаю, просто всё задумано так, что системный администратор работает с /etc, а системные (неизменный) конфиги лежат в другх местах, и в частности в /lib.

Это не закон, а хорошая практика.

Оффлайн YYY

  • Мастер
  • ***
  • Сообщений: 5 828
systemd для администраторов

Уже 107 страниц?
Прэлесно, прелесно :)