Что означает 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 вашей оболочки.