В старые времена я просто модифицировал /etc/inittab. Теперь, с помощью systemd, кажется, что tty [1-6] запускается автоматически, как мне отключить tty [4-6]?
Похоже, есть только один файл службы systemd, и он использует %Iдля распознавания различных сеансов tty. Надеюсь, мне не нужно удалять этот сервис и создавать каждый getty@ttyX.serviceвручную.
Нет реальной необходимости отключать «лишние» TTY, поскольку под systemdgettys генерируются по запросу: man systemd-getty-generatorподробности см . Обратите внимание, что по умолчанию это автоматическое порождение выполняется только для VT до VT6 (для имитации традиционных систем Linux).
Чтобы сделать вещи более эффективными, запросы на вход в систему теперь запускаются только по запросу. Когда вы переключаетесь на VT, сервис getty создается для getty@tty2.service, getty@tty5.service и так далее. Поскольку нам больше не нужно безоговорочно запускать процессы getty, это позволяет нам сэкономить немного ресурсов и ускорить запуск.
Если вы хотите настроить определенное количество gettys, вы можете просто изменить logind.confс соответствующей записью, в этом примере 3:
NAutoVTs=3
1. На самом деле стоит прочитать всю серию постов (в настоящее время их число 18) для администраторов .
Спасибо за ответ, Джейсон. Приложение моей компании поставляется на физическом сервере, и в старых дистрибутивах мы изменили бы inittab для блокировки других ttys.
jcbwlkr
11
В системах на основе Debian есть файл, который вызывает запуск 5 дополнительных getty при запуске, если вы только что создали сервер (без службы dbus):
Простое удаление этого файла остановит появление дополнительных getty. Не стесняйтесь сокращать список, если вы хотите просто создать один дополнительный getty (для 2 консолей вирт). Обратите внимание, что вы автоматически получаете его на tty1, поэтому у вас всегда есть хотя бы одна виртуальная консоль.
NB: файл принадлежит пакету systemd, поэтому для его изменения или удаления используйте dpkg-divertсначала. Но есть также системно-родной способ избавиться от этого - запустить sudo systemctl mask getty-static.serviceи настроить свой собственный/etc
Josip Rodin
2
maskЕсли активированная служба работает шумно , было бы лучше создать единицу с таким же именем, /etcчтобы переопределить ее содержимое. Используйте ExecStart = / bin / true, если вы хотите запустить ноль статических getty.
Sourcejedi
другой Systemd правильного путь , чтобы переопределить версию пакета (вы действительно никогда не должны удалить этот файл) , используя sudo systemctl edit getty-static.service, который создаст файл переопределение , который имеет приоритет над /libодним
ryeager
8
Чтобы отключить gettys для определенных TTY 4-6, оставляя работающими 1-3 и 7-9, выполните:
for i in {4..6}; do
systemctl mask getty@tty${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тоже не получится.
В системах на основе Debian есть файл, который вызывает запуск 5 дополнительных getty при запуске, если вы только что создали сервер (без службы dbus):
В нем говорится:
Простое удаление этого файла остановит появление дополнительных getty. Не стесняйтесь сокращать список, если вы хотите просто создать один дополнительный getty (для 2 консолей вирт). Обратите внимание, что вы автоматически получаете его на tty1, поэтому у вас всегда есть хотя бы одна виртуальная консоль.
Смотрите также: systemd-logind.service не запускается, если отсутствует dbus
источник
dpkg-divert
сначала. Но есть также системно-родной способ избавиться от этого - запуститьsudo systemctl mask getty-static.service
и настроить свой собственный/etc
mask
Если активированная служба работает шумно , было бы лучше создать единицу с таким же именем,/etc
чтобы переопределить ее содержимое. Используйте ExecStart = / bin / true, если вы хотите запустить ноль статических getty.sudo systemctl edit getty-static.service
, который создаст файл переопределение , который имеет приоритет над/lib
однимЧтобы отключить gettys для определенных TTY 4-6, оставляя работающими 1-3 и 7-9, выполните:
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
тоже не получится.Да, necroanswer. Приветствия.
источник