子进程如何杀死父进程 子进程仍然活着(寄养給init?) 子进程不成为僵尸进程?

发布于 2022-10-15 06:33:26 字数 71 浏览 19 评论 0

子进程如何杀死父进程 子进程仍然活着(寄养給init?) 子进程不成为僵尸进程?
有概念性问题请原谅  小白。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

一袭水袖舞倾城 2022-10-22 06:33:26

回复 1# tq0fqeu

    发个信号就杀死了啊,kill(getppid(), 9);

满栀 2022-10-22 06:33:26

本帖最后由 cokeboL 于 2011-05-19 17:38 编辑

回复 1# tq0fqeu

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <unistd.h>
  4. int main()
  5. {
  6.     pid_t pid;
  7.     if( (pid = fork()) < 0){
  8.         perror( "fork error: %m\n" ), exit(-1);
  9.     }else if( pid > 0 ){
  10.         while(1){
  11.             printf( "parent zZZ..\n" );
  12.             sleep(1);
  13.         }   
  14.     }else if( pid == 0 ){
  15.         sleep(3);
  16.         printf( "parent pid: %d\nchild pid:  %d\n", getppid(), getpid() );
  17.         kill( getppid(), 40 );
  18.         sleep(1); //刚发送完信号需要小下时间才到
  19.         printf( "\nparent has been killed !\nnew parent is: %d\n", getppid() );        
  20.         pause();
  21.     }      
  22.     return 0;
  23. }

复制代码

  1. cokeboL@ubuntu:~$ a.out
  2. parent zZZ..
  3. parent zZZ..
  4. parent zZZ..
  5. parent pid: 4173
  6. child pid:  4174
  7. 实时信号 6
  8. cokeboL@ubuntu:~$
  9. parent has been killed !
  10. new parent is: 1

复制代码

恋你朝朝暮暮 2022-10-22 06:33:26

我替他谢了

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文