バックグラウンドで実行できるように、「デーモン」モードを持つ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 が変更されたことだと思いますが、何が間違っていないのでしょうか?どうすれば修正できますか?