Que signifie TTY dans la commande unix ps?

quand J'exécute PS une des colonnes est sortie TTY. Qu'est-ce que cela signifie? En particulier, comment comme valeur de "??"comparer avec "ttys000"?

je demande parce que j'ai un programme Java exécution sort via ProcessBuilder, et lorsque ce programme est exécuté via mon IDE (IntelliJ), le processus prend 5 fois moins de temps que lorsqu'il est exécuté en tant que pot exécutable en dehors de l'IDE.

dans chaque cas, j'exécute ps lorsque le sort est en cours et la seule différence est que L'IDE crée un processus avec un TTY de ?? alors que le jar crée un processus avec TTY de ttys000.

23
demandé sur Crt 2011-08-19 00:32:32

2 réponses

TTY est un terminal d'ordinateur. Dans le contexte de l' ps, c'est le terminal qui exécute une commande particulière.

l'abréviation est pour "téléimprimeur", qui étaient des dispositifs qui permettaient aux utilisateurs de se connecter aux premiers ordinateurs.

par rapport à votre situation, le jar crée un terminal virtuel nommé 'ttys000' mais L'IDE ne se fixe pas à un terminal virtuel pour exécuter la commande.

27
répondu George Cummins 2011-08-18 20:41:07

un processus peut être (et est habituellement) lié à un "terminal de contrôle". Ce terminal peut être le matériel à la fin d'une ligne série, ou beaucoup plus probable aujourd'hui, être un logiciel virtuel équivalent. L'ATS est hérité du processus parent. Très probablement votre IDE se dissocie de son TTY, et lorsqu'il est lancé en dehors de votre programme java, il hérite du TTY de votre shell.

4
répondu Jürgen Strobel 2017-12-28 13:10:18