0

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 ページを更新することになっています。プログラムで同じことを行うにはどうすればよいですか?

4

2 に答える 2

0

~/.mozillaフォルダを削除すると問題が解決しました。

于 2016-02-27T09:41:10.080 に答える