进程关系之控制终端


会话和进程组有一些其他特性:

  • 一个会话可以有一个控制终端(controlling terminal)。这通常是登录到其上的终端设备(在终端登录情况下)或伪终端设备(在网络登录情况下)。
  • 建立与控制终端连接的会话首进程被称为控制进程(controlling process)。
  • 一个会话中的几个进程组可被分成一个前台进程组(foreground process group)以及一个或几个后台进程组(background process group)。
  • 如果一个会话有一个控制终端,则它有一个前台进程组,会话中的其他进程组则为后台进程组
  • 无论何时键入终端的中断键(常常是DELETE或Ctrl+C),就会将中断信号发送给前台进程组的所有进程
  • 无论何时键入终端的退出键(常常是Ctrl+\),就会将退出信号发送给前台进程组中的所有进程
  • 如果终端接口检测到调制解调器(或网络)已经断开连接,则将挂断信号发送给控制进程(会话首进程)。

这些特性示于图9-7中。

1359166263_6583

有时不管标准输入、标准输出是否被重定向,程序都要与控制终端交换。保证程序能读写控制终端的方法是打开文件/dev/tty,在内核中,此特殊文件是控制终端的同义语。自然,如果程序没有控制终端,则打开此设备将失败。

 

本篇博文内容摘自《UNIX环境高级编程》(第二版),仅作个人学习记录所用。关于本书可参考:http://www.apuebook.com/

相关内容