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