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

(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
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值