热门关键字:  ubuntu  分区  函数  Fedora  linux系统进程

当前位置 :| 主页>Linux教程>Linux入门>

会话、进程组、进程个人理解

来源: 作者: 时间:2008-08-25 Tag: 点击:
会话、进程组、进程个人理解。

(1)进程必定属于一个进程组,也只能属于一个进程组。
一个进程组中可以包含多个进程。
进程组的生命周期从被创建开始,到其内所有进程终止或离开该组。

获取当前进程所在进程组ID使用函数getpgrp
创建或加入其他组使用函数setpgid

(2)假设条件:pid1进程属于pgid1进程组;pid2属于pgid2进程组,并且是pgid2进程组组长;另有进程组pgid3,

在pid1进程中调用setpgid(pid2,pgid3);

a)当pid2和pgid3都>0且不相等时
功能:将pid2进程加入到pgid3组。此时pid2进程脱离pgid2进程组,进入pgid3进程组。
b)当pid2和pgid3都>0且相等时
功能:pid2进程创建新进程组,成为新进程组长(pgid3=pid2)。
c)当pid2==0,pgid>0时
功能:将调用进程pid1加入到pgid3中。此时pid1脱离pgid1,进入pgid3。
d)当pid2>0,pgid==0时
功能:将pid2加入到调用进程所在的pgid1进程组。此时pid2脱离pgid2,进入pgid1。
e)当pid2和pgid3都==0时,返回错误。

(3)一次登录就形成一次会话,会话组长即创建会话的进程。
只有不是进程组长的进程才能创建新会话。

(4)如果pid1进程属于pgid1进程组,且不是组长,属于会话sid1。
在pid1进程中调用setsid();
功能:pid1进程脱离pgid1进程组,创建一个新的会话sid2(sid2没有控制终端),pid1进程加入到pgid2组(pgid2==pid1)。
最新评论共有 0 位网友发表了评论
发表评论
评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
用户名: 密码:
匿名?
注册