2
我正在用C编写程序。该程序在启动时会执行一次fork()
。当父进程退出时(没有父节点显式地杀死子进程),让子进程死掉的最好方法是什么?Linux:当父母退出时退出分叉子进程
例如,如果我向父进程发送SIGTERM,则该子进程不会退出。
我正在用C编写程序。该程序在启动时会执行一次fork()
。当父进程退出时(没有父节点显式地杀死子进程),让子进程死掉的最好方法是什么?Linux:当父母退出时退出分叉子进程
例如,如果我向父进程发送SIGTERM,则该子进程不会退出。
您可以设置一个信号处理程序,并在父级达到其执行结束时从父级发送子级进程的信号。函数fork
将子进程ID返回给父进程,因此可以将该进程提供给kill
函数。您可以通过它SIGINT
或SIGTERM
或您选择的信号。
#include <signal.h>
#include <stdio.h>
#include <unistd.h>
int main(int argc, char* argv[]) {
pid_t id = 0;
id = fork();
if(id == 0) {
/*child code*/
} else if(id == -1) {
printf("Error forking.");
} else {
/*parent code*/
kill(id, SIGINT);
}
return 0;
}
@CarlNorum没有C的回答.. –
的问题说 “不杀父母子进程明确”。 –
孩子可以打电话_退出家长不必 – CBIII