Linux:当退出父进程退出分叉subprocess

我正在用C编写一个程序。程序在启动时执行一次fork() 。 当父进程退出时,让subprocess死掉的最好方法是什么(没有显式的父进程惩罚subprocess)?

例如,如果我发送一个SIGTERM到父进程,孩子不会退出。

您可以设置一个信号处理程序,并在父级达到其执行结束时,从父级发送一个信号给子级进程。 fork函数将子进程ID返回给父进程,因此可以将其提供给kill函数。 你可以通过它SIGINTSIGTERM或你选择的信号。

 #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; 

}