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