Init脚本不会“停止”分叉的C程序

时间:2013-02-07 22:16:05

标签: linux init raspbian

我有一个C程序,它有一个“守护进程”模式,所以我可以让它在后台运行。当它使用“-d”运行时,它使用以下代码分叉:

if(daemon_mode == 1)
{
    int i = fork();
    if(i<0) exit(1); // error
    if(i>0) exit(0); // parent
}

我创建了一个init脚本,当我手动运行init脚本启动我的守护程序时,它启动正常,但是,如果我用“stop”运行它,守护程序不会停止。

我想问题是由于分叉导致PID发生了变化,我没有错,我该如何解决?

1 个答案:

答案 0 :(得分:1)

如果您正在使用pid文件来控制进程,那么您可能更正确的是更改pid会导致问题。只需在守护进程后而不是之前编写pid文件。