Что означает TTY в команде unix ps? - PullRequest
27 голосов
/ 19 августа 2011

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

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

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

Ответы [ 2 ]

31 голосов
/ 19 августа 2011

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

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

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

4 голосов
/ 19 августа 2011

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

...