登出时Firefox未正确关闭
我刚刚安装了Ubuntu 14.04 beta2
并且在25次尝试中注销,关闭或重新启动,我的会话在退出时没有正确关闭Firefox
23次。 结果是Firefox标签恢复页面,如果我事先花时间手动关闭Firefox,就不会发生这种情况。
由于它工作了2/25次,感觉就像Ubuntu不允许Firefox的处理时间结束的时间问题(Ubuntu在大约1-2s内注销)。 我甚至都没有收到“等待Firefox?/无论如何关闭?” 我在12.04下观察的对话框。
所以,如果我是正确的,我怎么做它让它等待? 如果不是什么问题,我该如何解决不正确的退出?
我没有管理配置文件或会话配置文件的经验,也没有使用bash的经验(我理解它但在编码时很糟糕)。 所以,如果你不能回答,但有一篇很好的文章,关于配置文件/会话如何在Unix / Linux / Debian / Ubuntu中工作(如果相同)和/或如何更改登录/注销事件,我会对此感到高兴。
编辑:我做了额外的测试,进一步表明这是一个时间问题
-
wmctrl -c firefox; sleep 0.5; sudo shutdown now -r
wmctrl -c firefox; sleep 0.5; sudo shutdown now -r
工作正常100% -
wmctrl -c firefox; sleep 0.2; sudo shutdown now -r
wmctrl -c firefox; sleep 0.2; sudo shutdown now -r
工作正常50% -
wmctrl -c firefox; sudo shutdown now -r
wmctrl -c firefox; sudo shutdown now -r
工作正常10% -
sudo shutdown now -r& wmctrl -c firefox
似乎永远不会工作……
所以作为一种解决方法,我该如何编写wmctrl -c firefox; sleep 0.5
在类似于.profile
或bash_logout
的文件中wmctrl -c firefox; sleep 0.5
,但是对于会话注销?
显然,没有像以前那样的专用文件。 它是Gnome下的/etc/gdm/PostSession
但是因为显然是Unity所以不可用。 并且在/etc/rc0.d/
和/etc/rc6.d/
下放置一个脚本将不起作用,因为它们仅在Xserver关闭后执行。
然而,当要求gnome注销时,会发生一个名为gnome-save-yourself
的事件。 我是gedit
实例将隐式调用。 Seamus Phelan制作了一个python脚本来监听事件并在捕获时运行脚本。
以下是解决方案的链接: 用户注销时的脚本执行(非root用户)
按照说明操作,然后您需要做的就是放置可能如下所示的脚本:
#! /bin/sh #Requires wmctrl wmctrl -c firefox; gmusicbrowser -cmd "Quit"; exit 0;
其中选项-c
轻轻关闭Firefox,同时gmusicBroswer的-cmd "Quit"
。 Firefox和gMusicBrowser都需要正确关闭,而不是。
一个可能更好的方法是检查在Ubuntu和程序中使用SIGTERM
, SIGKILL
和kill timeout
,但我对它不了解。