C 强制子进程在fork之后退出
我正在尝试创建一个实际分叉子进程的应用程序。问题是,在完成所有分叉之后,我不需要退出应用程序来关闭所有子进程 我正在使用以下代码:C 强制子进程在fork之后退出,c,linux,C,Linux,我正在尝试创建一个实际分叉子进程的应用程序。问题是,在完成所有分叉之后,我不需要退出应用程序来关闭所有子进程 我正在使用以下代码: for(i=0;i<tot;i++) { switch(PID = fork()) { case -1: perror("[!] Couldn't fork!\n"); exit(1); case 0: //do something exit(0); default: numfo
for(i=0;i<tot;i++) {
switch(PID = fork()) {
case -1:
perror("[!] Couldn't fork!\n");
exit(1);
case 0:
//do something
exit(0);
default:
numforks++;
if (numforks > THREADS)
for (numforks; numforks > THREADS; numforks--)
PID = wait(&status);
}
}
while ((PID = wait(&status)) > 0);
但问题是,并不是只杀死产卵的叉子。它也会杀死父进程。有什么想法吗?您可以使用kill()
&计时器在指定的时间间隔后发送
int kill(pid_t pid, int sig);
例如:kill(0,SIGTERM)代码>
如果pid等于0,则sig将被发送到调用进程的进程组中的每个进程,因为当一个进程分叉时,它将从其父进程继承其PGID。我只想为标题投票。@TWhite:我的反应正好相反。查看kill(2)
system call.@t如果你认为这很有趣,那就太令人不安了。@self幽默不在于小孩子的死。幽默在于滚动问题标题,发现杀死剩余的孩子,然后被提醒,“哦,是的,叉和杀死孩子的过程。我有时有一种黑色幽默感,在读了标题和问题后,我内心咯咯地笑了起来。使用它实际上关闭了我的电脑。
int kill(pid_t pid, int sig);