控制终端

控制终端

会话和进程组还有一些其它特点:

  • 会话能拥有一个单独的控制终端。这通常是我们用其登陆的设备——终端设备(在终端登陆的情况下)或者pseudo-terminal设备(在网络登的情况下)
  • 建立控制终端连接的会话长被称作:控制进程
  • 在会话中的进程组可以分为:一个单独的前台进程组和一个或多个后台进程组
  • 如果一个会话拥有控制终端,那么它有一个单独的前台进程组,并且其它在会话中的进程都是后台进程组。
  • 无论我们按了什么终端的中断键(通常是DELETE或Crtl+C),这会导致中断信号被发送到所有前台进程组中的进程。
  • 无论我们按了什么终端的退出键(通常是CTRL+”\”),这会导致中断信号被发送到所有前台进程组中的进程。
  • 如果终端接口发现modem或络网断开连接,hang-up信号被发送到控制进程(会话长)。

这些特性如下图所示:

figure9-7

通常我们不必担心控制终端;当我们登陆时,它会自动建立连接。

有时候当一个程序想和控制终端通信时,不管标准输入和输出是否被重定向。保证程序和控制终端通讯的方法是用open打开文件/dev/tty。这个特殊的文件是等同于内核中的控制终端。通常,如果程序没有控制终端,那么open这个设备将会失败。

Comments are closed.