日期:2014-05-16  浏览次数:20729 次

郁闷:被杀进程成了僵死进程
本人写了一个服务器程序,需要在unix服务器上不断运行。
为使程序在出现错误时能继续运行,本人fork了一个子进程,父进程用了一个signal函数,并用死循环一直运行。
当子进程出现问题退出的时候,用atexit()向父进程发出一个信号,
  父进程接到信号一个,fork一个子进程,让其继续运行,父进程继续死循环
可是,当程序运行起来以后,本人用kill 命令向子进程发了一个信号以后,子进程确没有正常退出,确变成了僵死进程,当然也每能执行atexit()


请问,这是怎么回事,应该如何解决,

------解决方案--------------------
你会不会把父进程给kill掉了呢。
------解决方案--------------------
在你的父进程你要用waitpid() 你那个子进程。
------解决方案--------------------
LS正解