Як закрити tty


14

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


2
Ви їх не відкрили, вони відкриті. Ви щойно змінили VT. Якщо ви хочете вийти з одного з них, використовуйте exit. Якщо ви не ввійшли в систему, не хвилюйтеся. Це було раніше, просто ти не дивився на це.
золотинки

1
@goldilocks, VT можна динамічно розподіляти та закривати. Перший завжди виділяється, коли на ньому консоль, initі X зазвичай виділяє наступні, але ви можете виділити більше. Відкриття /dev/ttyxпристрою достатньо для його виділення.
Стефан Шазелас

@StephaneChazelas: Досить справедливо. Я щойно робив висновок із "використання комбінацій клавіш", що ngwdaniel насправді не почав нічого, що ініт вже не породив. Якщо це так, немає потреби закривати їх (і як ви вказуєте у своїй відповіді, це все одно не так легко зробити).
goldilocks

Ви мали на увазі зменшити кількість доступних 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)

Ви можете використовувати whoкоманду для переліку користувачів, які зареєстровані в даний час, і кількість номерів, що зареєстровані.
Джоло

5

Я вважаю, що це deallocvtкоманда, яку ви шукаєте.

Спочатку переконайтеся, що VT більше не використовується. Наприклад, якщо є gettyпочалося з паків на initна цій консолі, немає сенсу намагатися звільнити його, ви повинні видалити цей Телетайп з inittabпершої і сказати , initщоб перезавантажити його конфігурації. Якщо є оболонка, вийдіть із оболонки тощо.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.