首页 > 代码库 > 进程控制(十四)---进程组
进程控制(十四)---进程组
在Linux系统中,每个进程都会属于一个进程组,而每个进程组都有一个进程组ID(pgid),这个进程组ID的值等于组长进程的进程ID。通常在shell下执行的第一个程序将成为一个组长进程,其后生成的所有与此进程有血缘关系的进程都属于此进程组(除非子进程使用setpgid函数改变自己的进程组ID)。
=======================================================
Linux系统提供了 getpgrp 函数和 getpgid 函数来读取进程的进程组 ID ,提供了 setpgid 函数来设置进程的进程组 ID。
函数原型:
函数参数:
- getpgrp 函数没有参数,只能用来读取调用进程所属的进程组 ID
- getpgid 函数用来读取进程 ID 为pid的进程组 ID,当 pid=0时,就相当于 getpgrp 函数
- setpgid 函数用来设置进程 ID 为pid的进程的进程组 ID 为 pgid。如果pid=0,那么相当于设置调用进程本身的进程组ID;如果pgid=0,那么相当于设置进程组ID和pid相同。要注意的是:一个进程只能够为进程本身或者其子进程设置新的进程组 ID,而且新的进程组和原来的进程组必须是属于同一个会话(session)
返回值:
- getpgrp:总会调用成功,返回调用进程的进程组ID
- getpgid:调用成功返回pid的进程组ID,调用失败返回 -1
- setpgid:调用成功时返回 0, 调用失败时返回 -1
进程控制(十四)---进程组
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。