Linux进程关系

终端登陆

  • Linux采用了管理文件方式,在/etc/inittab中包含了了配置信息,指定了init应该启动的终端设备。
  • 而在Ubuntu发行中,,使用放在/etc/init的*.conf命名的配置文件中。

网络登陆

  • Linux网络登陆与BSD基本相同,使用xinetd,等待大多数的网络连接。首先,init调用一个shell,使得其执行/etc/rc,由此启动守护进程xinetd,xinetd等待TCP/IP的链接,每次一个服务请求到达,执行一次fork,产生一个进程。
  • etc/init文件夹中存放的是用于自启动的脚本文件。rc1~6存放的是系统初始化时,不同的启动等级的配置文件。

进程组

  • 每个进程有一个进程ID以外,还属于一个进程组,每个进程组都有自己独立的ID号。
  • 进程组组长的ID就是进程组的ID,组长可以创建一个进程组和进程,只要进程组中还有进程存在,进程组就存在,与组长是否存在无关。
  • 子进程可以调用exec函数,获得独立,离开进程组的管理。

会话

  • 会话是一个或者多个进程的集合,子进程创建会话会发生:1、该进程会变成会话的首进程。2、该进程成为新的进程组的组长进程。3、该进程将没有控制终端。
  • 会话首进程ID会被视作会话的ID。
  • 使用setsid创建新的会话。使用getsid得到会话ID。

控制终端

  • 建立与控制终端链接的会话称为控制进程。
  • 一个会话中的几个进程可以被称之为一个前台进程和多个后台进程。
  • 有三个特殊字符可以控制终端驱动程序产生特殊的信号:
    1、Delete或者Ctrl+C : 产生中断SIGINT。
    2、Ctrl+\ :退出字符,产生SIGQUIT。
    3、Ctrl+Z :挂起字符,产生SIGSTP。

你可能感兴趣的:(Linux)