进程管理_进程组、会话、终端

1、进程组

对相同类型的进程管理

进程组的诞生

  1. 在shell里直接执行一个应用程序,执行shell就相当于创建一个进程,顺便创建了一个进程组,对于应用程序来说,他们自己就是进程组的首进程
  2. 如果进程调用了fork函数,那么父子进程同属于一个进程组,父进程是首进程
  3. 在shell中通过管道执行连接起来的应用程序,两个程序同属于一个进程组,第一个程序为进程组的首进程
    进程组首进程作用:作为进程组的pid,叫做pgid,等于进程组首进程的pid

2、会话

管理进程组,主要两大类进程组:前台进程组

会话的诞生

  1. 调用setsid函数,新建一个会话,应用程序作为会话的第一个进程,称为会话首进程
  2. 用户在终端登录之后,启动shell时的Linux系统会创建一个新的会话,shell进程作为会话的首进程
  3. 会话ID:会话首进程id,SID

前台进程祖

在shell启动的时候默认是前台进程组的首进程,前台进程组的首进程会占用会话所关联的终端来运行,shell启动其他应用程序时,其他程序成为首进程
关于**前台进程组的首进程会占用会话所关联的终端来运行:**举个例子
当调用sleep时,sleep会一直占用终端,期间不能执行其他命令
在这里插入图片描述

后台进程组

后台进程中的程序运行时不会占用终端的,在shell中启动程序时加上&就是运行在后台进程组中。
运行sleep 10 &程序,程序会在后台运行,不会占用终端,会马上把终端的使用权返还给shell进程
Ctrl + Z会使程序进入后台并且停止运行
jobs:查看后台有哪些进程在运行
fg+jobs id 可以把后台进程组调到前台运行
在这里插入图片描述
在这里插入图片描述

终端

  1. 物理终端
    串口终端
    LCD终端:他们都需要依赖局的设备打印输出
  2. 伪终端
    ssh远程连接产生的终端:ssh是一款软件
    桌面系统启动时的终端:桌面系统虚拟出来的终端
  3. 虚拟终端:Linux内核自带的ctrl+alt+f0~f6可以打开7个不同的终端
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值