网站首页 > 技术教程 正文
进程组
Liunx下每个进程都隶属于一个进程组,因此它们除了PID,还有进程组ID(PGID),我们可以用如下函数来获取指定进程的PGID:
#include <unistd.h>
pid_t getpgid(pid_t pid);该函数成功时返回进程pid所属进程组PGID,失败则返回-1并设置errno。
每个进程组都有一个首领进程,其PGID和PID相同。进程组将一直存在,直到其中所有进程都退出,或者加入到其他进程组。
下面这个函数用来设置PGID:
#include <unistd.h>
int setpgid(pid_t pid, pid_t pgid);这个函数将PID为pid的进程的PGID设置为pgid。
- 如果pid和pgid相同,则由pid指定的进程将被设置为进程组首领
- 如果pid为0,则表示设置当前进程的PGID为pgid
- 如果pgi为0,则使用pid作为目标PGID。
setpgid调用成功时返回0,失败返回-1并设置errno。
这里需要注意的是:
一个进程只能设置自己或者其子进程的PGID。并且,当子进程调用exec系列函数后,我们也不能再在父进程中对它设置PGID。
会话
一些有关联的进程组将形成一个会话(session)。下面的函数用于创建一个会话:
#include <unistd.h>
pid_t setsid(void);这个函数不可以由进程组的首领进程调用,否则将产生一个错误。对于非组首领的进程,调用该函数不仅创建新会话,而且有如下额外效果:
- 调用进程会成为会话的首领,此时该进程是新会话的唯一成员
- 新建一个进程组,其PGID就是调用进程的PID,调用进程成为该组的首领
- 调用进程将甩开终端(如果有的话)
该函数成功时返回新的进程组的PGID,失败则返回-1并设置errno。
Linux进程并未提供所谓会话ID(SID)的概念,但Linux系统认为它等于会话首领所在的进程组PGID,并且提供如下函数来读取SID:
#include <unistd.h>
pid_t getsid(pid_t pid);用ps命令查看进程关系
我们在bash shell下执行ps和less命令,所以ps和less命令的父进程是bash命令,我们可以从PPID(父进程PID)一列可以看出。这三条命令创建了一个会话ID(SID是12308)和两个进程组ID(PGID分别是12308和12316)。bash命令的PID、PGID和SID都相同,很明显它既是会话的首领也是组12308的首领。ps命令则是组12316的首领,因为其PID也是12316。
猜你喜欢
- 2025-06-19 【Linux系统编程】特殊进程之守护进程
- 2025-06-19 linux进程通信方式对比(linux进程和线程通信)
- 2025-06-19 Linux系统编程之进程创建(linux进程的创建与控制实验报告)
- 2025-06-19 Linux-进程性能信息统计(linux进程运行时间)
- 2025-06-19 Linux内核进程与调度原理(linux内核进程和用户进程)
- 2025-06-19 linux 根据进程名杀死进程 -kill进程名
- 2025-06-19 Linux-多进程开发,看完就明白了(linux创建多个进程)
- 2025-06-19 图解Linux进程优先级(在linux中,进程优先级的相关参数有多个)
- 2025-06-19 linux之进程相关(linux 进程)
- 2025-06-19 Linux系统编程之进程控制(linux进程控制函数)
欢迎 你 发表评论:
- 01-12w7激活密钥64位系统工具(w7激活密钥64位系统工具下载)
- 01-12电脑的剪贴板怎么打开(电脑的剪贴板怎么打开快捷键)
- 01-12显示器驱动程序无法启动(显示器驱动程序无法启动什么原因)
- 01-12电脑扬声器显示正常但没声音
- 01-12三星官网手机官网登录(三星官网网址)
- 01-12英伟达更新驱动安装失败(英伟达驱动更新没反应)
- 01-12direct3d怎么启用(direct3d怎么启用不了)
- 01-12u盘装ubuntu系统(在u盘装ubuntu)
- 最近发表
- 标签列表
-
- 下划线是什么 (87)
- 精美网站 (58)
- qq登录界面 (90)
- nginx 命令 (82)
- nginx .http (73)
- nginx lua (70)
- nginx 重定向 (68)
- Nginx超时 (65)
- nginx 监控 (57)
- odbc (59)
- rar密码破解工具 (62)
- annotation (71)
- 红黑树 (57)
- 智力题 (62)
- php空间申请 (61)
- 按键精灵 注册码 (69)
- 软件测试报告 (59)
- ntcreatefile (64)
- 闪动文字 (56)
- guid (66)
- abap (63)
- mpeg 2 (65)
- column (63)
- dreamweaver教程 (57)
- excel行列转换 (56)

本文暂时没有评论,来添加一个吧(●'◡'●)