fork を使用して子プロセスを作成するプログラムを作成しました。子プロセスでは、Firefox を使用してローカルの HTML ページを開く execl を使用します。
execl( "/usr/bin/firefox", "/usr/bin/firefox","/home/xyz/t/webpages/page1.html", (char*)NULL);
親プロセスで 5 秒間スリープした後、子プロセスに SIGTERM シグナルを送信します。
sleep(5);
kill(browser_pid,SIGTERM);
コンパイルして実行すると、すべて正常に動作します。しかし、プログラムを 5 回以上実行すると、Firefox の動作が不安定になり、Firefox をリセットするか、セーフ モードで開くためのウィンドウが表示されます。
プロセスに SIGTERM シグナルを送信せずに HTML ページを手動で閉じ、ブラウザーの [閉じる] ボタンを使用すると、何回繰り返しても問題なく動作します。
私のプログラムは、新しいコンテンツが定期的に書き込まれていることを示すために、5 秒ごとに Web ページを更新することになっています。プログラムで同じことを行うにはどうすればよいですか?