ps -aux 输出中的 pts/0 和 pts/1 是什么意思?

ps -aux 输出中的 pts/0 和 pts/1 是什么意思?

我正在读Unix 电动工具书,并遇到了ps命令。ps x书中给出的命令的输出是:

PID   TTY STAT TIME COMMAND
18034 tty2 S 0:00 -zsh
18059 ?    S 0:01 ssh-agent
18088 tty2 S 0:00 sh /usr/X11R6/bin/startx
18096 tty2 S 0:00 xinit /etc/X11/xinit/xinitrc -- :0 -auth /home/jpeek/
18101 tty2 S 0:00 /usr/bin/gnome-session
18123 tty2 S 0:33 enlightenment -clientId default2
18127 tty2 S 0:01 magicdev --sm-client-id=default12
18141 tty2 S 0:03 panel --sm-client-id default8
18145 tty2 S 0:01 gmc --sm-client-id default10
18166 ? S 1:20 gnomepager_applet --activate-goad-server gnomepager_a
18172 tty2 S 0:01 gnome-terminal
18174 tty2 S 0:00 gnome-pty-helper
18175 pts/0 S 0:00 zsh
18202 tty2 S 0:49 gnome-terminal
18203 tty2 S 0:00 gnome-pty-helper
18204 pts/1 S 0:01 zsh
18427 pts/1 T 0:00 man zshjp
18428 pts/1 T 0:00 sh -c /bin/gunzip -c /home/jpeek/.man/cat1/zshjp.1.gz
18430 pts/1 T 0:03 /usr/bin/less -is
18914 pts/1 T 0:02 vi upt3_changes.html
1263 pts/1 T 0:00 vi urls.html
1511 pts/1 T 0:00 less coding
3363 pts/1 S 0:00 vi 1007.sgm
4844 tty2 S 0:24 /usr/lib/netscape/netscape-communicator -irix-session
4860 tty2 S 0:00 (dns helper)
5055 pts/1 R 0:00 ps x

有人可以帮忙解码这个输出吗?pts/0和是什么意思pts/1

  1. 我所能找到的只是pts代表“伪终端从机”,但无法理解pts/0和背后的区别pts/1
  2. 为什么会有?inTTY栏?为什么tty该过程是未知的?
  3. 各种 Gnome 应用程序的含义是什么,例如gnome-pty-helpergnopager_applet

非常感谢。

答案1

  1. 它们是伪终端的不同实例。例如,它们是终端窗口中的不同选项卡。
  2. 没有 TTY。该进程已与 tty 分离。使用TIOCNOTTY ioctl() 或setsid()。传统上这样做是为了成为后台进程(又名“守护进程”),当从终端注销时,它不会被 SIGHUP 自动杀死。 (如果它是本例中的 gnome 进程,则可能会通过某种其他机制终止)。

    或者,它可能永远不会有 TTY 来启动,例如为systemd服务启动的进程。

答案2

过去,终端是连接到串行端口的物理设备。这些在 UNIX 中显示为/dev.

从输出的外观来看,您正在运行 Linux,因此有两种不同类型的“虚拟”终端。第一组是通过显示器连接的。 Linux 创建了一堆它们,你可以使用它们在它们之间切换Ctrl+Alt+Fn。这些是tty0, tty1, 等等。

然后就有了一个概念伪终端ssh用于连接到系统的每个会话都需要一个,每个 (Gnome) X 终端会话也需要一个。这些是“pts/n”名称。搜索“伪终端”以了解更多信息。

因此,上面的输出告诉我:您的图形会话绑定到第二个虚拟终端(Ctrl+Alt+F2)。您有两个 gnome 终端,pts/0并且pts/1.

尝试使用打开一个新的 VTCtrl+Alt+F1并登录,然后在终端 3 和 4 上重复。每次执行此操作ps -ef都会显示该终端正在运行的进程。

后台进程没有附加终端,并将显示?在 TTY 列中。

相关内容