我正在用 C 编写一个程序。该程序fork()
在启动时执行一次。当父进程退出时(没有父进程显式杀死子进程),让子进程自行死亡的最佳方法是什么?
例如,如果我向父进程发送 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;
}