Как закрыть tty

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

«Закрытие» TTY

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

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

# systemctl stop getty@ttyX.service

  • Замените X номером tty вы хотели бы закрыть
    • Если для переключения на tty использовался [F4], то служба называется 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. Поскольку root останавливает службу 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)

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

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