当前位置: 技术问答>linux和unix
关于调用时出现僵尸进程的问题.
来源: 互联网 发布时间:2015-01-29
本文导语: int main(int argc , char *argv) { if (fork()==0) { while(1) { sleep(300); execl("/root/abcd","abcd",NULL); } } { do something....... } return 0; } 也就是我想定时调用abcd...
int main(int argc , char *argv)
{
if (fork()==0)
{
while(1)
{
sleep(300);
execl("/root/abcd","abcd",NULL);
}
}
{
do something.......
}
return 0;
}
也就是我想定时调用abcd程序,现在出了一个问题就是调用abcd的时候可能出错,
导致abcd成为僵尸进程,这样while(1)循环就没有用了,现在我想问如何解决这个问题.
{
if (fork()==0)
{
while(1)
{
sleep(300);
execl("/root/abcd","abcd",NULL);
}
}
{
do something.......
}
return 0;
}
也就是我想定时调用abcd程序,现在出了一个问题就是调用abcd的时候可能出错,
导致abcd成为僵尸进程,这样while(1)循环就没有用了,现在我想问如何解决这个问题.
|
加个SIGCHLD的handler在里面waitpid。
最好是不用execl,而用system("root/abcd");
最好是不用execl,而用system("root/abcd");