Что означает TTY в команде unix ps?
Когда я запускаю PS, один из столбцов выводит TTY. Что это значит? В частности, как значение "?" сравнить с "ttys000"?
Я спрашиваю, потому что у меня есть программа Java, выполняющая sort
через ProcessBuilder, и когда эта программа запускается через мою IDE (IntelliJ), процесс занимает 5 раз меньше, чем при запуске в качестве исполняемого баннера вне IDE.
В каждом случае я запускаю ps, когда сортировка запущена, и единственная разница заключается в том, что создатели IDE выполняют процесс с TTY? тогда как банка создает процесс с TTY ttys000.
Ответы
Ответ 1
A TTY - это компьютерный терминал. В контексте ps
терминал выполняет конкретную команду.
Аббревиатура означает "TeleTYpewriter", которые были устройствами, которые позволяли пользователям подключаться к ранним компьютерам.
В связи с вашей ситуацией банка создает виртуальный терминал с именем "ttys000", но среда IDE не подключается к виртуальному терминалу для выполнения команды.
Ответ 2
Процесс может быть (и обычно) связан с "управляющим терминалом". Этот терминал может быть аппаратным в конце последовательной линии или, что гораздо более вероятно, сегодня, является эквивалентом виртуального программного обеспечения. TTY наследуется от родительского процесса. Скорее всего, ваша среда IDE отключается от TTY, а при запуске вне вашей java-программы наследует вашу оболочку TTY.