Linux查看会话进程,《linux终端,会话组,进程组,作业,进程》

1. 关于终端的一些概念:终端,控制台,虚拟终端,伪终端,控制终端

下面是根据这篇博文的一些整理。

终端和控制台都不是个人电脑的概念,而是多人共用的小型中型大型计算机上的概念。一台主机,连很多终端,终端为主机提供了人机接口,每个人都通过终端使用主机的资源. 终端有字符哑终端和图形终端两种。控制台是另一种人机接口, 不通过终端与主机相连, 而是通过显示卡-显示器和键盘接口分别与主机相连, 这是人控制主机的第一人机接口。

linux系统在控制台上,通过gettty软件虚拟出了多个虚拟终端(例如tty1-tty6……,具体数量可以再/etc/inittab里修改)。以fedora16为例,tty1为图形终端,tty2-tty6为哑字符终端。他们之间的切换可以通过"ctrl"+"alt"+"F1/F2/F3/F4/F5/F6"来切换。在字符哑终端上执行tty命令可以查看当前终端名。在图形终端tty1上通过terminal每打开一个终端,又会虚拟出一个虚拟的字符哑终端(pts/0……)。这些终端,不管是tty还是pts都是在控制台上通过软件虚拟出来的虚拟终端,tty1-tty6通常也被称为控制台终端。PS:其实还有一个tty0,他是当前正在使用的控制台终端的一个别名。

串行端口终端(Serial Port Terminal)是使用计算机串行端口连接的终端设备,其名称一般为ttyS0-ttyS1……。

伪终端(Pseudo Terminal)出现在网络登录场合,是成对出现的逻辑终端设备。一个是在远端,由telnet等网络登录程序连接的终端(比如ptyp2),另一个则是目标机器上getty程序连接的端口(比如ttyp2)。登录机上的telnet程序和目标机上的登录程序之间就是通过伪终端ptyp2和ttyp2进行通信的。

控制终端(/dev/tty)是在应用程序中的一个概念。每一个会话组可能会有最多1个控制终端,它类似与tty0,也执行当前使用的控制台中断。关于这个概念,建议参考《UNIX环境高级编程》第9章。

2. 关于会话组的一些概念:会话,进程组,作业,进程

进程组和会话是为支持shell作业控制而定义的抽象概念,进程组和会话之间形成了一种两级层次关系:进程组是一组相关进程的集合,会话是一组相关进程组的集合。用户通过shell能够交互式地在前台和后台运行命令,实现对作业的控制。作业和进程组可以看做同义词。

更加详细的说明,建议参考《Linux/UNIX系统变成手册》下册第34章。

你可能感兴趣的:(Linux查看会话进程)