一、进程组、作业、会话
1.进程组(process group)
每个进程除了有一个进程ID(保存在PCB当中),还属于一个进程组。进程组由一个或多个进程组成,通常和一个作业相关联,可以接收来自同一终端的各种信号。每个进程组有一个唯一的进程组ID。
每个进程组都有一个组长进程,组长进程的ID等于组ID。
组长进程可以组建一个进程组。只要进程组中有一个进程存在,这个进程组就存在。
2.作业(job)
当命令行上运行一个进程时,就会变成一个作业,这个作业可能是一个进程,也可能是多个进程。
shall有且只能运行一个前台作业,当前台有作业时,就不会运行其他作业,shell在后台运行(此时不能接收指令),当作业终止,shall被提到前台,可以接收指令
shell分前后台来控制的不是进程而是作业或者进程组。一个前台作业可以由多个进程组成,一个后台作业也可以由多个进程组成。shell可以运行一个前台作业和任意多个后台作业。(作业控制)
*作业和进程组区别:如果作业中某个进程又创建子进程(fork),则子进程不属于作业,属于进程组。一旦前台作业运行结束,shell就把自己提到前台,若原来前台进程还在(子进程还没终止 ),则自动变为后台进程组
3.会话(session )
会话是一个或多个进程组的集合。一个会话可以有一个控制终端。建立与控制终端连接的会话首进程被称为控制进程(一般bash就是控制进程)。一个会话中几个进程组可被分为一个前台进程组和一个或多个后台进程组。
一个会话中,应该包括控制进程(会话首进程)、一个前台进程组和任意后台进程组。
ctrl+c(SIGINT信号),ctrl+\(SIGQUOT),ctrl+Z(SIGTSTP)内核发送相应的信号给前台进程组中所有进程。
切换用户就是当前会话首进程起新进程组,每次su会加载新bash,每次打开终端也会新起一个bash

二、终端
1.基本概念
用户通过登录系统后获得一个shell进程,这个终端称为shell进程的控制终端,控制终端是保存在PCB中的信息。fork时会复制PCB中的信息,所以由shell进程启动的其他进程的控制终端也是这个终端。默认情况下(未重定向)每个进程的标准输入、标准输出和标准作物都指向控制终端。在控制终端输入一些特殊的控制键可给前台进程发送信号(ctrl+c 、ctrl+Z等)
每个进程都可通过一个特殊的设备文件/dev/tty访问控制终端
例:
1.一个进程要访问它的控制终端可以通过dev/tty也可以通过该终端设备对应的设备文件来访问
2.ttyname函数可由文件描述符查看对应文件名。该文件描述符必须指向一个终端设备而不是任意文件。
2.终端的登陆
一个pc通常只有一套键盘和显示其,也就是只有一套终端设备,但可以通过Ctrl+Alt+F1~F6 切换到6个字符终端,相当于有6套虚拟终端设备,它们共同用一套物理终端设备,对应的设备文件为/dev/tty1~/dev/tty6
登陆过程:
1.系统启动,init进程根据配置文件确定打开那些终端
2.getty根据命令行参数打开终端设备作为它的控制终端,把文件描述符0、1、2指向控制终端,然后提示用户输入账号,当用户账号输后,getty任务完成。
3.lofin程序提示用户输入密码(输入密码期间关闭终端回显),然后验证账号密码的正确性。若密码错误,login进程终止,init重新fork/exec一个getty,继续步骤2;若正确,login设置一些环境变量,设置当前工作目录为该用户主目录,然后执行shell
4.execl函数启动bash,在bash前加“-”表示bash作为shell启动,执行shell脚本

*getty->exec->login->execl->bash

.Session与进程组
shell可以同时运行一个 作业/进程组 和任意多个后台 作业/进程组,这称为作业控制。一个前台作业可以由多个进程组成,一个后台作业也可以由多个进程组成。
例:
启动5个进程:
 $proc1 | proc2 &
     $proc3 | proc4 | proc5
其中:1.proc1和proc2属于同一个后台进程组(&表示后台运行),proc3、proc4、proc5属于同一个前台进程组。shell进程属于一个单独的进程组。
2.这些进程控制终端相同,属于同一个session。
3.当用户在控制终端输入特殊的控制键(ctrl+c等),内核发送相应的信号给前台进程。

进程组 会话 作业相关推荐

  1. 进程,进程组,作业,会话,控制终端

    Linux-进程.进程组.作业.会话.控制终端详解 一.进程 传统上,Unix操作系统下运行的应用程序. 服务器以及其他程序都被称为进程,而Linux也继承了来自unix进程的概念.必须要理解下,程序 ...

  2. Linux-进程、进程组、作业、会话、控制终端详解

    一.进程 传统上,Unix操作系统下运行的应用程序. 服务器以及其他程序都被称为进程,而Linux也继承了来自unix进程的概念.必须要理解下,程序是指的存储在存储设备上(如磁盘)包含了可执行机器指 ...

  3. linux 进程组id 错乱,【Linux】终端,进程组,作业,会话及作业控制

    终端 概念 在UNIX系统中,用用户通过终端登录系统后得到一一个Shell进程,这个终端成为Shell进程的控制终端 (Controlling Terminal),控制终端是保存在PCB中的信息,而我 ...

  4. Linux内核进程,线程,进程组,会话组织模型以及进程管理

    Linux 内核创世与创生 Linux宇宙诞生之时,创建了三个重要进程,三个进程的PID分别为0,1,2. 做一个不太恰当的比喻,你可以现象成组件一个创业团队,第一步需要找到CEO,CTO,CFO,有 ...

  5. 会话、进程组与僵死进程

    1.   终端 在Linux系统中,用户通过终端登录系统后得到一个Shell进程,这个终端成为Shell进程的控制终端(Controlling Terminal),Shell进程启动的其他进程的控制终 ...

  6. linux操作系统之进程组及会话

    (1)进程组(作业):代表一个或多个进程的集合. 1)父进程创建子进程时,默认子进程与父进程属于同一进程组,进程组id==第一个进程id(组长id,父进程id). 2)使用kill -SIGKILL ...

  7. ora03135连接失去联系 进程id 0_进程组、会话、控制终端概念,如何创建守护进程?...

    守护进程 概念: 守护进程,也就是通常所说的Daemon进程,是Linux中的后台服务进程.周期性的执行某种任务或等待处理某些发生的事件. Linux系统有很多守护进程,大多数服务都是用守护进程实现的 ...

  8. 搞懂进程组、会话、控制终端关系,才能明白守护进程干嘛的?

    守护进程 概念: 守护进程,也就是通常所说的Daemon进程,是Linux中的后台服务进程.周期性的执行某种任务或等待处理某些发生的事件. Linux系统有很多守护进程,大多数服务都是用守护进程实现的 ...

  9. 得到进程id_搞懂进程组、会话、控制终端关系,才能明白守护进程干嘛的?

    守护进程 概念: 守护进程,也就是通常所说的Daemon进程,是Linux中的后台服务进程.周期性的执行某种任务或等待处理某些发生的事件. Linux系统有很多守护进程,大多数服务都是用守护进程实现的 ...

最新文章

  1. mysql 5.7 1054_MySQL5.7更改密码时出现ERROR 1054 (42S22)的解决方法
  2. java多线程发布订阅,多线程实现发布订阅升级版---遗留问题
  3. 轻量级的c语言开发环境搭建,win下轻量级的c语言开发环境配置:vsc + gcc
  4. on 和where条件的放置详解
  5. WCF面向服务应用程序系列之一:Hello WCF
  6. Extjs Window用法详解 3 打印具体应用,是否关掉打印预览的界面
  7. 使用xshell上传本地文件到服务器
  8. OpenTSDB 开发指南之 Grafana 展示OpenTSDB监控数据
  9. 带列表写入文件出错先 json.dumps
  10. 深度学习:自然语言生成-集束/柱搜索beam search和随机搜索random search
  11. hive字段名、注释中文显示问号
  12. Borland Delphi7 企业版注册方法
  13. pspice仿真错误
  14. 性能服务器e5,英特尔至强E5服务器到底有多强?
  15. (十二)简单说一说drop、delete与truncate的区别
  16. 火山PC自绘高级表格及超级列表框
  17. 两寸证件照怎么弄?如何制作两寸证件照?
  18. 关于input=file的用法
  19. lect01_codes_高阶语法
  20. java开发工程师报名费多少_都说Java工程师的薪资比较高,事实真是如此吗?

热门文章

  1. springMVC---处理模型数据方法 *
  2. 【Lucene4.8教程之二】索引
  3. 点击事件触发选择提示框
  4. php -- 取整数
  5. flex 3与flex 4的不同
  6. mysql-mmm高可用架构
  7. DiskFileUpload类常用方法
  8. IBOOKS导入EPUB出现-23错误时解决方法
  9. CodeForces - 1491E Fib-tree(模拟)
  10. 洛谷 - P4755 Beautiful Pair(笛卡尔树+主席树)