我有一个 C 程序,它有一个“守护进程”模式,这样我就可以让它在后台运行。当它使用“-d”运行时,它使用以下代码进行分叉:
if(daemon_mode == 1)
{
int i = fork();
if(i<0) exit(1); // error
if(i>0) exit(0); // parent
}
我创建了一个初始化脚本,当我手动运行初始化脚本来启动我的守护进程时,它启动正常,但是,如果我用“停止”运行它,守护进程不会停止。
我想问题是由于分叉导致PID发生了变化,我没有错,我该如何解决?