Как получить меньше ttys с помощью Systemd?

В старые времена я только что изменил /etc/inittab. Теперь, когда systemd, кажется, автоматически запускает tty [1-6], как мне отключить tty [4-6]?

Похоже, есть только один системный файл systemd, и он использует %I, чтобы различать разные сеансы tty. Надеюсь, мне не нужно удалять эту службу и создавать каждый [email protected] вручную.

26 голосов | спросил daisy 24 62012vEurope/Moscow11bEurope/MoscowSat, 24 Nov 2012 10:40:21 +0400 2012, 10:40:21

3 ответа


32

Нет необходимости отключать «лишние» TTY, поскольку под systemd gettys генерируются по запросу: см. man systemd-getty-generator. Обратите внимание, что по умолчанию этот автоматический нереста выполняется только для VT до VT6 (для имитации традиционных систем Linux).

Как Леннарт говорит в сообщении в блоге 1 :

Чтобы сделать вещи более эффективными, подсказки для входа теперь начинаются только по требованию. Когда вы переключаетесь на VT, служба getty создается на [email protected], [email protected] и так далее. Поскольку нам не нужно безоговорочно запускать процессы getty, это позволяет нам сэкономить немного ресурсов и сделать запуск немного быстрее.

Если вы хотите настроить определенное количество gettys, вы можете просто изменить logind.conf с соответствующей записью, в этом примере 3:

NAutoVTs=3


1. Фактически вся серия сообщений, в настоящее время насчитывающая 18- systemd для администраторов , хорошо стоит прочитать.

ответил jasonwryan 24 62012vEurope/Moscow11bEurope/MoscowSat, 24 Nov 2012 11:10:18 +0400 2012, 11:10:18
11

В системах на базе Debian есть файл, который запустит 5 дополнительных getty при запуске, если вы только что создали сервер (без службы dbus):

/lib/systemd/system/getty.target.wants/getty-static.service

В нем говорится:

[Service]
Type=oneshot
ExecStart=/bin/systemctl --no-block start [email protected] [email protected] [email protected] [email protected] [email protected]
RemainAfterExit=true

Просто удаление этого файла остановит лишние getty от нереста. Не стесняйтесь сокращать список, если вы хотите просто создать одну дополнительную getty (для 2-х пульсовых консолей). Обратите внимание, что вы автоматически получаете один на tty1, поэтому у вас всегда есть хотя бы одна виртуальная консоль.

См. также: systemd-logind.service не запускается, если dbus отсутствует

ответил milli 10 AM00000010000001331 2015, 01:31:13
4

Чтобы отключить gettys на определенных TTY 4-6, хотя возможно, чтобы работать 1-3 и 7-9, запустите:

for i in {4..6}; do
  systemctl mask [email protected]${i}.service
done

mask создает символическую ссылку /etc/systemd/system/{name} -> /dev/null, которая эффективно отключает обслуживание. Попытка запустить его с помощью systemctl start отобразит ошибку Failed to start NAME.service: Unit NAME.service is masked.

Если у вас есть A.service Wants=masked.service, тогда start A будет успешным, но также будет генерировать ошибку запуска зависимостей в журнале.

Если у вас есть B.service Requires=masked.service, тогда start B также не работает.

Yup, necroanswer. Приветствия.

ответил temoto 3 MarpmThu, 03 Mar 2016 21:58:10 +03002016-03-03T21:58:10+03:0009 2016, 21:58:10

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

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132