What does TTY mean in the unix ps command?

Zugwalt picture Zugwalt · Aug 18, 2011 · Viewed 41.4k times · Source

When I run PS one of the columns output is TTY. What does this mean? In particular, how does as value of "??" compare with "ttys000"?

I ask because I have a Java program execute sort via ProcessBuilder, and when this program is run via my IDE (IntelliJ) the process takes 5x less than when run as an executable jar outside the IDE.

In each case I run ps when the sort is running and the only difference is the IDE creats a process with a TTY of ?? whereas the jar creates a process with TTY of ttys000.

Answer

George Cummins picture George Cummins · Aug 18, 2011

A TTY is a computer terminal. In the context of ps, it is the terminal that executed a particular command.

The abbreviation stands for "TeleTYpewriter", which were devices that allowed users to connect to early computers.

In relation to your situation, the jar creates a virtual terminal named 'ttys000' but the IDE does not attach to a virtual terminal to execute the command.