TTY在unix ps命令中的含义是什么?

时间:2011-08-18 20:32:33

标签: java process tty ps

当我运行PS时,其中一列输出为TTY。这是什么意思?特别是,作为“??”的价值如何与“ttys000”比较?

我问,因为我有一个Java程序通过ProcessBuilder执行sort,当这个程序通过我的IDE(IntelliJ)运行时,该过程比在IDE外部作为可执行jar运行时少5倍。

在每种情况下,我都会在排序运行时运行ps,唯一的区别是IDE会创建一个TTY为??的进程。而jar创建一个TTY为ttys000的进程。

2 个答案:

答案 0 :(得分:30)

TTY是计算机终端。在ps的上下文中,它是执行特定命令的终端。

缩写代表“TeleTYpewriter”,它是允许用户连接到早期计算机的设备。

根据您的情况,jar会创建一个名为“ttys000”的虚拟终端,但IDE不会附加到虚拟终端以执行命令。

答案 1 :(得分:4)

进程可以(并且通常是)绑定到“控制终端”。该终端可以是串行线末端的硬件,或者今天更可能是虚拟软件等价物。 TTY继承自父进程。很可能你的IDE与TTY脱离关联,当你在java程序外面启动时,你的IDE会继承shell的TTY。