linux 之进程基础 (七)、守护进程、进程组等概念

7. 守护进程、进程组等概念

7.1 守护进程特点

  • 运行方式
    守护进程,也就是通常所说的Daemon进程,是Linux中的后台服务进程。周期性的执行某种任务或等待处理某些发生的事件。Linux系统有很多守护进程,大多数服务都是用守护进程实现的。比如:像我们的tftp,samba,nfs等相关服务。同时Linux的大多数服务器就是用守护进程实现的。比如,Internet服务器inetd,Web服务器httpd等。
  • 生命周期
    守护进程会长时间运行,常常在系统启动时就开始运行,直到系统关闭时才终止
  • 守护进程不依赖于终端
    显而异见,从终端开始运行的进程都会依附于这个终端,这个终端称为这些进程的控制终端。当控制终端被关闭时,相应的进程都会被自动关闭。咱们平常写进程时,一个死循环程序关闭终端的同时也关闭了我们的程序,但是对于守护进程来说,其生命周期守护需要突破这种限制,它从开始运行,直到整个系统关闭才会退出,所以守护进程不能依赖于终端。
  • 守护进程的父进程为init 进程

7.2 查看守护进程

7.2.1 查看

命令:ps -ajx

  • -a: 显示所有
  • -x:显示没有控制终端的进程
  • -j:显示与作业有关的信息(显示的列):会话期ID(SID),进程组ID(PGID),控制终端(TTY),终端进程组ID(TRGID)
7.2.2 识别守护进程

输入ps -ajx 命令后

  • 所有的守护进程都是以超级用户启动的(UID为0);
  • 没有控制终端(TTY为?);
  • 终端进程组ID为-1(TPGID表示终端进程组ID,该值表示与控制终端相关的前台进程组,如果未和任何终端相关,其值为-1;
  • 所有的守护进程的父进程都为init进程(PID为1的进程)。

例如:cron 进程就是一个守护进程
在这里插入图片描述

7.3 与进程相关的一些概念

7.3. 1 进程组

进程组是一个或多个进程的集合。进程组由进程组ID(PGID)来唯一标识。每个进程组都有一个组长进程,进程组ID就是组长进程的进程号。

7.3.2 会话

是一个或多个进程组的集合。

一般一个用户登录后新建一个会话(打开终端),每个会话也有一个ID来标识(SID)。登录后的第一个进程叫做会话领头进程(session leader),通常是一个shell/bash,即一个shell程序。对于会话领头进程,其PID=SID。

为什么是一个用户登录后新建一个会话呢?
一般取去公司上班,我们见不到服务器真机,而是公司为每个员工分配一个 用户名和密码,我们可以通过远程进行登录。这个时候我们就登录到了一个终端,因此说一个用户登录后新建一个会话。

7.3.3 控制终端
  • 一个会话一般会拥有一个控制终端用于执行IO操作。
  • 会话的领头进程(一般是shell进程)打开一个终端之后, 该终端就成为该会话的控制终端。
  • 与控制终端建立连接的会话领头进程也称为控制进程 (controlling process)一个会话只能有一个控制终端
7.3.4 前台进程组
  • 该进程组中的进程能够向终端设备进行读、写操作的进程组。
    例如:在终端中执行./a.out 这个程序就能通过向终端读写
7.3.5 后台进程组ID
  • 该进程组中的进程只能够向终端设备
    例如$ ./a.out & 那么这个进程只能向终端打印内容,但是不能读取终端中的内容。

注意:每个会话有且只有一个前台进程组,但会有0个或者多个后台进程组。

7.3.6 终端进程组ID

每个进程还有一个属性,终端进程组ID(TPGID),用来标识一个进程是否处于一个和终端相关的进程组中。

  • 前台进程组中的进程的TPGID=PGID,

  • 后台进程组的PGID≠TPGID(d一般前台进程组ID等于终端ID,而

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值