linux 进程 进程组 作业 会话 控制终端

linux 进程 进程组  会话 控制终端 这几个很容易搞昏,记录一下,防止忘记

1 进程

个人理解 进程就是一段内存中运行的程序 pid 是进程ID

2 进程组

顾名思义,就是一组进程,他们之间不是孤立的,肯那个存在父子 或进程关系,注意linux 下进程是树状组织,

 每个进程一定属于一个进程组,也只能属于一个进程组,进程组里面有多个进程

 每个进程组都有一个leader,领导进程的PID 就是集成组ID 即 PGID

eg: ps -o pid,pgid,ppid,sid,comm  | more

上图中可以看出:

          ps

bash -》fork -》

             cat

ps  和 cat 构成了集成组,ps 是leader , leader 可以先结束,进程租的其他进程任然持有刚才的 PGID, 直到集成组所有进程都退出

可以通过 kill -SIGTEAM  给进程组发送信号

可用 pstree 查看进程关系,如图

3 作业

Shell分前后台来控制的不是进程而是作业(Job)或者进程组(Process Group)。一个前台作业可以由多个进程组成,一个后台也可以由多个进程组成

Shell可以运行一个前台作业和任意多个后台作业,这称为作业控制 bash 支持作业控制,sh 不支持

作业与进程组的区别:如果作业中的某个进程又创建了子进程,则子进程不属于作业。一旦作业运行结束,Shell就把自己提到前台,如果原来的前台进程还存在(如果这个子进程还没终止),它自动变为后台进程组。

可以通过在末尾加& 把进程放到后台

通过 job 放在前台,具体使用请谷歌

4 会话

 多个进程组组可以构成会话 ,会话是有其中的进程创建的,该进程叫做会话的 session leader,session leader 的pid 成为会话的sid 

会话可以有多个进程组,但是只能有一个前台进程组,其他的都是后台进程组, 每个会话都可以连接一个控制终端,且只能连接一个终端,终端有输入输出,都传到进程会话组

时间: 2024-11-19 10:58:52

linux 进程 进程组 作业 会话 控制终端的相关文章

linux 进程组 作业 会话

   进程组,作业,会话1. 进程组      每个进程除了有一个进程ID之外,还属于一个进程组.进程组是一个或多个进程的集合.      通常,它们与同一作业相关联,可以接收来自同一终端的各种信号. 每个进程组有一个唯一的进程组ID.每个进程组都可以有一个组长进程.组长进程的标识是其进程组ID等于其进程ID.组长进程可以创建一个进程组,创建该组中的进程,然后终止. 只要在某个进程组中一个进程存在,则该进程组就存在,这与其组长进程是否终止无关.2.作业     Shell分前后台来控制的不是进程

从进程组、会话、终端的概念深入理解守护进程

一.写在前面 「守护进程」是 Linux 的一种长期运行的后台服务进程,也有人称它为「精灵进程」.我们常见的 httpd.named.sshd 等服务都是以守护进程 Daemon 方式运行的,通常服务名称以字母d结尾,也就是 Daemon 第一个字母.与普通进程相比它大概有如下特点: 无需控制终端(不需要与用户交互) 在后台运行 生命周期比较长,一般是随系统启动和关闭 二.守护进程必要性 为什么要设置为守护进程,普通进程不可以吗? 当我们在命令行提示符后输入类似./helloworld程序时,在

会话 控制终端 setsid

1.setsid 设置会话id,作用:新回话.新进程组.没有控制终端.必须不是组长才行.  getpid getpgrp getsid. 2.一个会话可以有一个控制终端,通常是登录到其上的终端设备.伪终端(网络登录).建立与终端链接的会话首进程是控制进程.一个会话一个前台进程 多个后台进程.如果有控制终端 则有一个前台进程组.终端接口检测到网络断开,将发挂断sighup?信号给会话首进程.

【LINUX】 会话 进程组 作业 终端

[进程组]  进程组是一个或多个进程的集合.每个进程除了有一个进程ID之外,还属于一个进程组.  每个进程组有一个唯一的进程组ID.每个进程组都可以有一个组长进程. 组长进程的进程组ID等于其进程ID.进程组是否存在和有无组长无关. 每个进程都是属于进程组的,没有独立的进程,除非该进程组中只有一个进程,则可以说这个进程是独立的. 组长进程可以创建一个进程组,创建该组中的进程,然后终止. 但是只要有一个进程存在,则这个进程组就存在,这与其组长进程是否终止无关. 通常,它们与同一作业相关联,可以接收

(转)进程间关系:进程、僵尸进程、孤儿进程、进程组、前台进程组、后台进程组、孤儿进程组、会话、控制终端

不同的shell对使用管道线时创建子进程的顺序不同,本文以bash为例,它是支持作业控制的shell的典型代表. 僵尸进程与孤儿进程 僵尸进程:先于父进程终止,但是父进程没有对其进行善后处理(获取终止子进程有关信息,释放它仍占有的资源).消灭僵尸进程的唯一方法是终止其父进程.孤儿进程:该进程的父进程先于自身终止.其特点是PPID=1(init进程的ID).一个孤儿进程可以自成孤儿进程组. 文中用到的缩写 PID = 进程ID (由内核根据延迟重用算法生成)PPID = 父进程ID(只能由内核修改

作业、进程组、会话和守护进程

1. 进程组 每个进程除了有一个进程ID之外,还属于一个进程组.进程组是一个或多个进程的集合.通常,它们与同一作业相关联,可以接收来自同一终端的各种信号.每个进程组有一个唯一的进程组ID.每个进程组都可以有一个组长进程.组长进程的标识是,其进程组ID等于其进程ID.组长进程可以创建一个进组,创建该组中的进程,然后终止.只要在某个进程组中一个进程存在,则该进程组就存在,这与其组长进程是否终止无关. 2.作业 Shell分前后台来控制的不是进程而是作业(Job)或者进程组(Process Group

2进程之间的关系:进程组,会话,守护进程

 1进程组 一个或过个进程的集合,进程组ID是一个正整数.用来获得当前进程组ID的函数. pid_t getpgid(pid_t pid) pid_t getpgrp(void) 获得父子进程进程组 运行结果: 组长进程标识:其进程组ID=其进程ID 组长进程可以创建一个进程组,创建该进程组中的进程,然后终止,只要进程组中有一个进程存在,进程组就存在,与组长进程是否终止无关. 进程组生存期:进程组创建到最后一个进程离开(终止或转移到另一个进程组) 一个进程可以为自己或子进程设置进程组ID i

Linux守护进程的编程实现

Linux 守护进程的编程方法 守护进程(Daemon)是执行在后台的一种特殊进程.它独立于控制终端而且周期性地执行某种任务或等待处理某些发生的事件.守护进程是一种非常实用的进程.Linux的大多数server就是用守护进程实现的.比方,Internetserverinetd,Webserverhttpd等.同一时候,守护进程完毕很多系统任务.比方,作业规划进程crond,打印进程lpd等. 守护进程的编程本身并不复杂,复杂的是各种版本号的Unix的实现机制不尽同样,造成不同Unix环境下守护进

Linux 守护进程的原理与实现

一.守护进程概述 在linux或者unix操作系统中在系统的引导的时候会开启很多服务,这些服务就叫做守护进 程.为了增加灵活性,root可以选择系统开启的模式,这些模式叫做运行级别,每一种运行级别以一定的方式配置系统. 守护进程是脱离于终端并且在后台运行的进程.守护进程脱离于终端是为了避免进程在执行过程中的信息在任何终端上显示并且进程也不会被任何终端所产生的终端 信息所打断. 二.守护进程简介 守护进程,也就是通常说的Daemon进程,是Linux中的后台服务进程.它是一个生存期较长 的进程,通