web-dev-qa-db-fra.com

Que signifie TTY dans la commande unix ps?

Lorsque je lance PS, l'une des sorties des colonnes est TTY. Qu'est-ce que ça veut dire? En particulier, comment la valeur de "??" comparer avec "ttys000"?

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

Dans chaque cas, je lance ps lorsque le tri est en cours d'exécution et la seule différence est le IDE crée un processus avec un TTY de ?? tandis que le pot crée un processus avec un TTY de ttys000.

29
Zugwalt

Un TTY est un terminal informatique. Dans le contexte de ps, c'est le terminal qui a exécuté une commande particulière.

L'abréviation signifie "TeleTYpewriter", qui étaient des appareils qui permettaient aux utilisateurs de se connecter aux premiers ordinateurs.

Par rapport à votre situation, le bocal crée un terminal virtuel nommé 'ttys000' mais le IDE ne s'attache pas à un terminal virtuel pour exécuter la commande.

31
George Cummins

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

4
Jürgen Strobel