会话与进程组

http://www.cnblogs.com/forstudy/archive/2012/04/03/2427683.html 经典文章必看

 -----创建会话的进程初始不能为进程组组长进程,否则setsid调用会失败,创建会话失败,因为创建会话的进程会成为新的会话进程首进程,会成为新进程组的组长进程,所以不能提前成为组长进程。

一个用户会话可以有1个或多个进程组。

一个用户会话可以有1个或多个作业(进程组)

1个进程组可以只有一个进程

前台进程会与控制争端关联,后台作业进程有读请求时,系统会给它法SIGTTIN信号,让后台进程在终端停止等待,转到前端进程后,才会与终端关联,用户才可以输入。

如下图:通过调用setsid,使得登陆shell成为会话控制进程,会话首进程。

通过fork创建的子进程不会是组长进程,继承附进程的进程组ID,通过调用setsid,创建新的会话,使子进程成为新的组长进程、会话控制进程。

d

posted @ 2017-10-24 19:42  FromScratch  阅读(206)  评论(0)    收藏  举报