URN Logo
UNIX Resources » Linux » China Linux Forum » C/C++编程版 » 38 » 父进程如何干净的杀死子进程?
announcement 声明: 本页内容为中国Linux论坛的内容镜像,文章的版权以及其他所有的相关权利属于中国Linux论坛和相应文章的作者,如果转载,请注明文章来源及相关版权信息。
Resources
China Linux Forum(finished)
Linux Forum(finished)
FreeBSD China(finished)
linuxforum.net
  业界新闻与评论
  自由软件杂谈
  IT 人生
  Linux软件快递
  翻译作坊
  Linux图书与评论
  GNU Emacs/XEmacs
  Linux 中文环境和中文化
  Linux桌面与办公软件
  Linux 多媒体与娱乐版
  自由之窗Mozilla
  笔记本电脑上的Linux
  Gentoo
  Debian 一族
  网络管理技术
  Linux 安装与入门
  WEB服务器和FTP服务器
  域名服务器和邮件服务器
  Linux防火墙和代理服务器应用
  文件及打印服务器
  技术培训与认证
  Linux内核技术
  Linux 嵌入技术
  Linux设备驱动程序
  Linux 集群技术
  LINUX平台数据库
  系统和网络安全
  CPU 与 编译器
  系统计算研究所专栏
  Linux下的GUI软件开发
  C/C++编程版
  PHP 技 术
  Java&jsp技术
  Shell编程技术
  Perl 编 程
  Python 编 程
  XML/Web Service 技术
  永远的Unix
  FreeBSD世界
   
父进程如何干净的杀死子进程?
父进程如何干净的杀死子进程? - zzhcl [2005-01-30 10:31 | 139 byte(s)]
 
Re: 父进程如何干净的杀死子进程? - zzhcl [2005-02-01 09:12 | 217 byte(s)]
 
Re: 父进程如何干净的杀死子进程? - WC_CLF [2005-02-01 19:23 | 70 byte(s)]
 
Re: 父进程如何干净的杀死子进程? - zzhcl [2005-02-02 09:43 | 453 byte(s)]
 
Re: 父进程如何干净的杀死子进程? - WC_CLF [2005-02-02 12:45 | 714 byte(s)]
 
Re: 父进程如何干净的杀死子进程? - Atu [2005-01-31 09:48 | 493 byte(s)]
 
Re: 父进程如何干净的杀死子进程? - beatit [2005-01-31 01:03 | 78 byte(s)]
 
 
Re: 父进程如何干净的杀死子进程? - WC_CLF [2005-01-30 11:18 | 490 byte(s)]
 
Subject: 父进程如何干净的杀死子进程?
Author: zzhcl    Posted: 2005-01-30 10:31    Length: 139 byte(s)
[Original] [Print] [Top]
父进程杀死子进程,用kill(son_id,SIGKILL)还是SIGINT,这样杀死子进程干净吗?怎么再重起子进程,发现子进程id增加了,那样子进程id不越来越大吗
[Original] [Print] [Top]
Subject: Re: 父进程如何干净的杀死子进程?
Author: WC_CLF    Posted: 2005-01-30 11:18    Length: 490 byte(s)
[Original] [Print] [Top]
如果进程号不变,还要进程号干什么?
给你个办法:
test.c

#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>

int main (void) {
printf ("%d ", (int) getpid ());
return 0;
}

$ cc -Wall -O2 test.c -o test.bin
$ while (:); do ./test.bin; done

一会儿就看到了。
----
__0oooo__
依稀间层峦叠障,仰天望片片隐霾。
[Original] [Print] [Top]
Subject: Re: 父进程如何干净的杀死子进程?
Author: suowei1979    Posted: 2005-01-30 16:07    Length: 28 byte(s)
[Original] [Print] [Top]
杀进程当然用kill了
----
hacker & hacking
http://vip.5d.cn/flashsj
[Original] [Print] [Top]
Subject: Re: 父进程如何干净的杀死子进程?
Author: beatit    Posted: 2005-01-31 01:03    Length: 78 byte(s)
[Original] [Print] [Top]
进程ID的选择在进程创建时自由其策略,ID的大小跟是否“干净”的杀死进程没有关系。
[Original] [Print] [Top]
Subject: Re: 父进程如何干净的杀死子进程?
Author: Atu    Posted: 2005-01-31 09:48    Length: 493 byte(s)
[Original] [Print] [Top]
SIGINT信号是可以被进程截获甚至忽略的,
SIGKILL信号是不能被进程截获的。

就是说,用SIGINT信号kill进程,进程可以有自己的信号处理程序,并可以
进行适当的善后处理,然后退出;但另一方面,接收到SIGINT信号的进程
也完全可以忽略该信号,而不终止自己。

而用SIGKILL信号kill进程,该进程则直接被杀死。

如果确实要“干净利索”的干掉一个进程,可以考虑SIGKILL,但是有丢失该
进程正在处理的数据的危险。

[Original] [Print] [Top]
Subject: Re: 父进程如何干净的杀死子进程?
Author: zzhcl    Posted: 2005-02-01 09:12    Length: 217 byte(s)
[Original] [Print] [Top]
我是使用捕获SIGCHLD信号,然后父进程使信号处理程序调用‘waitpid()’来避免僵死进程的。还是这个问题,如果每次杀死子进程,父进程接到命令再次调用子进程,子进程的id增加1,系统地进程数不是有限的吗?如果用完了进程数,怎么办?
[Original] [Print] [Top]
Subject: Re: 父进程如何干净的杀死子进程?
Author: WC_CLF    Posted: 2005-02-01 19:23    Length: 70 byte(s)
[Original] [Print] [Top]
给你讲了一大堆就是告诉你如果到了最大进程号会怎么样,再按我的方法看看。
----
__0oooo__
依稀间层峦叠障,仰天望片片隐霾。
[Original] [Print] [Top]
Subject: Re: 父进程如何干净的杀死子进程?
Author: zzhcl    Posted: 2005-02-02 09:43    Length: 453 byte(s)
[Original] [Print] [Top]
谢谢。原来又从300开始了,固定都是300重新开始吗? 下面是我的输出:
32748
32750
32752
32754
32756
32758
32760
32762
32764
32766
300
302
304
306
308
310
312
314
316
318
320
322
[Original] [Print] [Top]
Subject: Re: 父进程如何干净的杀死子进程?
Author: WC_CLF    Posted: 2005-02-02 12:45    Length: 714 byte(s)
[Original] [Print] [Top]

struct pid * fastcall find_pid(enum pid_type type, int nr)
{
struct hlist_node *elem;
struct pid *pid;

for (elem = (&pid_hash[type][hash_long((unsigned long)nr,
pidhash_shift)])->first; elem && ({ prefetch(elem->next); 1;})
&& ({ pid = hlist_entry(elem, typeof(*pid), pid_chain); 1;}); elem =
elem->next) {

if (pid->nr == nr)
return pid;
}
return NULL;
}

就是从链表里挨个找,有空的就用。
----
__0oooo__
依稀间层峦叠障,仰天望片片隐霾。
[Original] [Print] [Top]
« Previous thread
最有趣的程序
C/C++编程版
38
Next thread »
如何用GDB监视函数中的函数中的变量?
     

Copyright © 2007 UNIX Resources Network, All Rights Reserved.      About URN | Privacy & Legal | Help | Contact us
备案序号: 京ICP备05006143    webmaster: webmaster@unixresources.net
This page created on 2008-07-17 03:53:11, cost 0.050681114196777 ms.