TTY 在 unix ps 命令中是什么意思?

2022-09-01 06:53:48

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

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

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


答案 1

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

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

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


答案 2

进程可以(并且通常)绑定到“控制终端”。该终端可能是串行线路末端的硬件,或者今天更有可能是虚拟软件的等效物。TTY 继承自父进程。最有可能的是,您的 IDE 会解除其 TTY 的关联,并且在 Java 程序外部启动时会继承 shell 的 TTY。


推荐