首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

父进程结束时如何让fork的所有子进程也结束

2013-06-26 
父进程结束时怎么让fork的所有子进程也结束?父进程结束时怎么让fork的所有子进程也结束?[解决办法]fork子

父进程结束时怎么让fork的所有子进程也结束?
父进程结束时怎么让fork的所有子进程也结束?
[解决办法]
fork子进程后,父进程记录子进程的进程id号,父进程结束时,向所有子进程发送kill信号。子进程收到信号后退出。
[解决办法]
1、父进程主动登记子进程id,父进程退出时捕获信号,kill掉登记的子进程。

2、子进程主动检测父进程,具体方法有两种:
(a) 子进程设置定时器(或用单独线程跑),定时调用getppid()检测父进程父进程号是否变为1,即init进程,如果是则结束自身。
(b) 子进程设置定时器(或用单独线程跑),定时向父进程发送0信号(kill 0)检测父进程是否存在,如果不存在则结束自身。

3、第三方全局的类似于应用系统进程任务管理器,此种方法更加灵活些,可不用依赖进程的父子关系。

嗖了这3个不错,第2中方法比较可靠
[解决办法]
pid_t wait(int *statloc);

pid_t waitpid(pid_t pid, int *statloc, int options);


[解决办法]
atexit + kill
[解决办法]

引用:
atexit + kill
这个好。嗯
[解决办法]
引用:
pid_t wait(int *statloc);

pid_t waitpid(pid_t pid, int *statloc, int options);


用wait阻塞
[解决办法]
5L's ok

热点排行