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.
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.
A process can be (and usually is) bound to a "controlling terminal". This terminal may be hardware at the end of a serial line, or much more likely today, be a virtual software equivalent. The TTY is inherited from the parent process. Most likely your IDE disassociates itself from its TTY, and when started outside your java program inherits your shell's TTY.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With