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

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

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

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

2 ответов


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

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

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


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