2016-02-26 70 views
0

我编写了一个使用fork创建子进程的程序。在子过程中,我用EXECL将打开使用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或在安全模式下打开:

当我手动关闭HTML页面而不发送SIGTERM信号到过程并使用浏览器上的关闭按钮,它可以完美地执行任何次数的迭代。

我的程序应该每5秒刷新一次网页,以显示正在定期写入的新内容。 我怎样才能以相同的程序进行?

+0

使用像** ReloadEvery **或类似的插件。 Firefox不喜欢被外部杀死。您也可以从配置文件夹中删除文件'sessionstore.js'(每次杀死firefox后!)以防止安全模式弹出 – Ctx

+0

谢谢...您的aapproach的轻微变体....我删除了整个〜/ .mozilla和它的作品。 – nagla

回答

0

删除~/.mozilla文件夹解决了问题。

+0

请选择此答案,然后关闭该问题 – user3629249

0

尝试SIGINT而不是SIGTERM

+0

没有帮助...同样效果仍然 – nagla

相关问题