Как закрыть tty

14

Я открыл несколько ttys, и я не знаю, какую комбинацию клавиш использовать, чтобы закрыть tty. Я использую Arch Linux.

ngwdaniel
источник
2
Вы не открыли их, они открыты. Вы только что изменили VT. Если вы хотите выйти из одного из них, используйте exit. Если вы не вошли в систему, не волнуйтесь. Это было там раньше, просто ты не смотрел на это.
Златовласка
1
@goldilocks, VT могут быть динамически распределены и закрыты. Первый всегда выделяется, когда консоль на нем, initи X обычно выделяет следующие, но вы можете выделить больше. Открытие /dev/ttyxустройства достаточно, чтобы выделить его.
Стефан Шазелас
@ StephaneChazelas: Достаточно справедливо. Я просто пришел к выводу, что «используя комбинации клавиш», что ngwdaniel на самом деле не запустил ничего, что init уже не породил. Если это так, нет необходимости закрывать их (и, как вы указали в своем ответе, это не так легко сделать в любом случае).
Златовласка
Вы имели в виду уменьшить количество доступных tty?
маргаритка
@goldilocks спасибо, это ответ, который я искал. Я глупый новичок, и я подумал, что это я открыл ttys с помощью <Alt> + <F2> и т. Д.
ngwdaniel

Ответы:

10

"Закрытие" TTY

  • Если systemdне initиспользуется, то это не поможет вам.
  • sysvinitне больше не поддерживается Arch Linux

systemd's systemctlиспользуется для управления всем service unitsв системе. Чтобы узнать больше об этом ссылку man systemd.unit. Остановка gettyсервиса по желанию ttyвыполнит поставленную задачу. Ниже приведена команда для выполнения этого действия, и я также добавил тест, чтобы вы могли подтвердить результаты.

# systemctl stop getty@ttyX.service

  • Замените Xна ttyномер, который вы хотите закрыть
    • Если [F4] использовался для переключения на ttyтогда, сервис назван getty@tty4.service.
  • Эта процедура также закроет все приложения / клиенты, запущенные из указанного tty.

Тестовое задание

  1. Переключитесь на tty4и введите свой usernameи password.
    • <CTRL>+<ALT>+[F4]
  2. Запустите ваш любимый текстовый редактор
    • vim foo.bar
  3. Вернитесь назад tty1или к тому месту, где ttyвы изначально находились
    • <CTRL>+<ALT>+[F1]
  4. Откройте окно терминала и проверьте, vimработает ли
    • pgrep vim
      • pgrepвозвращает номер процесса сигнала указанного приложения. Несколько номеров будут возвращены, если есть несколько экземпляров одного и того же приложения
        • (если открыто четыре окна терминала, pgrepбудет выведено четыре номера процесса)
  5. Как корень остановка на gettyуслугуtty4
    • # systemctl stop getty@tty4.service
  6. Перепроверьте, если vimвсе еще активен на том, tty4где это было открыто и редактированиеfoo.bar
    • pgrep vim (если нет вывода / меньше вывода, чем в шаге 4, тогда нет процесса)
  7. Дважды проверьте статус getty@.serviceдляtty4
    • systemctl status getty@tty4.service | grep -i "Active"
      • Конвейер вывода к выводит grep -i "Active"только необходимую строку, которую вы должны будете наблюдать, чтобы убедиться, что gettyона отключена
        • Active: inactive (dead)
Cinelli
источник
Вы можете использовать whoкоманду для просмотра списка зарегистрированных пользователей и номеров телефонов.
Джоло
5

Я считаю, что это deallocvtкоманда, которую вы ищете.

Сначала убедитесь, что VT больше не используется. Например, если есть gettyначалось с паков на initна этой консоли, нет смысла пытаться освободить его, вы должны удалить этот Телетайп из inittabпервой и сказать , initчтобы перезагрузить его конфигурации. Если есть оболочка, выйдите из оболочки и т. Д.

Стефан Шазелас
источник