Что означает TTY в команде unix ps?

Когда я запускаю PS, один из столбцов выводится TTY. Что это значит? В частности, как определяется значение "??" сравнить с "ttys000"?

Я спрашиваю, потому что у меня исполняется Java-программа sort через ProcessBuilder, и когда эта программа запускается через мою IDE (IntelliJ), процесс занимает в 5 раз меньше, чем при запуске в качестве исполняемого файла JAR за пределами IDE.

В каждом случае я запускаю ps, когда выполняется сортировка, и единственная разница заключается в том, что IDE создает процесс с TTY, равным?? тогда как фляга создает процесс с TTY ttys000.

2 ответа

Решение

TTY - это компьютерный терминал. В контексте ps, это терминал, который выполнил определенную команду.

Аббревиатура расшифровывается как "TeleTYpewriter", это были устройства, которые позволяли пользователям подключаться к ранним компьютерам.

В зависимости от вашей ситуации, jar создает виртуальный терминал с именем "ttys000", но IDE не подключается к виртуальному терминалу для выполнения команды.

Процесс может быть (и обычно) связан с "управляющим терминалом". Этот терминал может быть аппаратным в конце последовательной линии, или, что гораздо более вероятно, сегодня является виртуальным программным эквивалентом. TTY наследуется от родительского процесса. Скорее всего, ваша IDE отсоединяется от своего TTY, и при запуске вне вашей Java-программы наследует TTY вашей оболочки.

Другие вопросы по тегам