linux的会话和进程组

会话: 一个或多个进程组。起于用户登录,终止于用户退出。此期间所有进程都属于这个会话期。
会话首进程:调用setsid创建会话的进程
1.规定组长进程不能调用setsid,因为调用setsid后,调用进程会成为新的进程组的组长进程.
如何保证? 先调用fork,然后终止父进程,此时由于子进程的进程组ID为父进程的进程组ID,而子进程的ID是重新分配的,所以保证子进程不会是进程组长,从而子进程可以调用setsid。
2.调用setsid后,
1)调用进程变成会话首进程
2)调用进程成为新的进程组的组长进程
3)删除控制终端
进程组:一个或多个进程。
组长进程: 进程ID==进程组ID
调用setpgid和setsid都会创建进程组。

你可能感兴趣的:(linux)