Когда вы просматриваете запущенные процессы, вы заметите поле TTY в выводе команды ps. Это поле важно, поскольку оно указывает на управляющий терминал, который выполнил команду. Понимание этой концепции является ключом к эффективному управлению процессами.
Что такое TTY
TTY — это аббревиатура от «Teletype» (телетайп), которое исторически было физическим устройством для взаимодействия с компьютером. В современных системах Linux TTY относится к терминалу, который предоставляет стандартный ввод и вывод для процесса.
Существует два основных типа терминалов, с которыми вы столкнетесь: терминальные устройства и псевдотерминальные устройства.
Терминальные устройства против Псевдотерминалов
Истинное терминальное устройство — это нативный консоль, который позволяет вводить команды и видеть вывод напрямую. Вы можете испытать это, переключившись на виртуальную консоль. Во многих системах вы можете нажать Ctrl-Alt-F1, чтобы получить доступ к TTY1. Вы увидите приглашение для входа в чисто текстовой среде, без графического интерфейса. Это классическое терминальное устройство. Чтобы вернуться к графической сессии, вы обычно можете использовать Ctrl-Alt-F7 (точная комбинация клавиш может отличаться).
Псевдотерминал (PTS), с другой стороны, — это то, что вы используете чаще всего. Когда вы открываете терминальное приложение в вашей графической среде рабочего стола, вы используете PTS. Они эмулируют терминал внутри окна. Если вы проверите вывод ps tty для вашей оболочки, вы увидите, что ее TTY указан как pts/*.
Роль управляющего терминала
Большинство процессов привязаны к управляющему терминалу. Это означает, что жизненный цикл процесса связан с терминальной сессией, которая его запустила. Например, если вы запускаете программу вроде find в окне терминала, а затем закрываете это окно, процесс find также будет завершен.
Процессы без управляющего терминала
Некоторые процессы, известные как демоны, предназначены для работы в фоновом режиме и управления системными службами. Эти процессы часто запускаются при загрузке системы и останавливаются только при ее выключении.
Чтобы предотвратить их случайное завершение, демоны не прикреплены к управляющему терминалу. Когда вы узнаете, как использовать ps для проверки этих процессов, вы увидите вопросительный знак (?) в столбце TTY. Этот ? означает, что процесс не имеет управляющего терминала и работает независимо от какой-либо пользовательской сессии.