Unix环境高级编程笔记:9、进程关系
2013-11-15 11:31
162 查看
1、进程组
每个进程组都可以有一个组长进程。组长进程标识是,其进程组ID等于其进程ID
组长进程可以创建一个进程组,创建该组中的进程,然后终止。只要在某个进程组中有一个进程存在,则该进程组就存在,这与进程组长进程是否终止无关。
setpgid函数将pid进程的进程组ID设置为pgid。如果这二个参数相等,则由pid指定的进程变成进程组组长。
如果pid是0,则使用调用者的进程ID
在大多数作业控制shell中,在fork之后调用此函数,使父进程设置其子进程的进程组ID,并且使子进程设置自己的进程组ID。
这二个调用中有一个是冗余的,但让父子进程都这么做可以保证,在父、子进程认为子进程已进入了该进程组时,这确实已经发生。
waitpid函数则可以用来等待一个进程或者指定进程组中的一个进程终止。
2、会话
会话是一个或多个进程组的集合。
shell的管理线将几个进程编成一组。
proc1 | proc2 &
proc3 | proc4 |proc5
进程调用setsid函数建立一个新会话
3、孤独进程组
一个其父进程已经终止的进程称为孤独进程,这种进程由init进程收养。
#include <unistd.h> pid_t getpgrp(void); 返回值:调用进程的进程组ID |
组长进程可以创建一个进程组,创建该组中的进程,然后终止。只要在某个进程组中有一个进程存在,则该进程组就存在,这与进程组长进程是否终止无关。
#include <unistd.h> int setpgid(pid_t pid,pid_t pgid); |
如果pid是0,则使用调用者的进程ID
在大多数作业控制shell中,在fork之后调用此函数,使父进程设置其子进程的进程组ID,并且使子进程设置自己的进程组ID。
这二个调用中有一个是冗余的,但让父子进程都这么做可以保证,在父、子进程认为子进程已进入了该进程组时,这确实已经发生。
waitpid函数则可以用来等待一个进程或者指定进程组中的一个进程终止。
2、会话
会话是一个或多个进程组的集合。
shell的管理线将几个进程编成一组。
proc1 | proc2 &
proc3 | proc4 |proc5
进程调用setsid函数建立一个新会话
#include <unistd.h> pid_t setsid(void); |
#include <unistd.h> pid_t getsid(pid_t pid); |
一个其父进程已经终止的进程称为孤独进程,这种进程由init进程收养。
相关文章推荐
- UNIX环境高级编程 第9章 进程关系
- UNIX环境高级编程-第9章- 进程关系
- UNIX环境高级编程笔记之进程控制
- Unix环境高级编程笔记 :7、进程环境
- unix环境高级编程--进程关系与守护进程
- UNIX环境高级编程——进程关系
- UNIX环境高级编程——进程关系
- UNIX环境高级编程——进程关系
- UNIX环境高级编程笔记——7进程环境
- UNIX环境高级编程笔记之进程
- Unix环境高级编程(八)进程关系
- UNIX环境高级编程之第9章:进程关系
- UNIX环境高级编程学习笔记:9_12 孤儿进程 孤儿进程组
- UNIX环境高级编程笔记-8进程控制
- Unix环境高级编程—进程关系
- UNIX环境高级编程笔记之进程环境
- Unix 环境高级编程(APUE) 之 七 进程关系 和 守护进程
- (七) 一起学 Unix 环境高级编程(APUE) 之 进程关系 和 守护进程
- unix环境高级编程-进程关系
- UNIX环境高级编程学习之第九章进程关系-创建孤儿进程