正文

 

背景

 

Cairo-Dock 设置为开机自动启动后,系统菜单栏里的关机选项就无效了,命令行里可以使用命令关机。

 

搜索过程

 

这次google找到的结果让我很失望,于是只好百度了。

在百度贴吧里找到一个方法(http://tieba.baidu.com/p/3034339092?see_lz=1),但是我尝试后仍然失败了。

命令行里输入下面的命令

 

gnome-session-properties

找到Cairo-Dock,双击或者编辑,在命令里应该可以看到

 

 

 cairo-dock

修改为

 

 

 cairo-dock -w 5

然后我在 CSDN 上找到一个(http://blog.csdn.net/tecn14/article/details/27876089), 很逗的是他的方法竟然是使用 cairo-dock 上的关机按钮,这和使用命令行没区别了。

 

 

后来,我找到几个,说在 /usr/lib/cairo-dock/cairo-dock-launcher-API-daemon (64 位系统为 /usr/lib/x86_64-linux-gnu/cairo-dock/cairo-dock-launcher-API-daemon) 里面修改一些东西,但是我的系统里根本没有这个位置。

 

后来,在 ubuntu 的论坛上(http://forum.ubuntu.org.cn/viewtopic.php?t=460382)找到一个好的方法:

编辑  /usr/lib/i386-linux-gnu/cairo-dock/cairo-dock-launcher-API-daemon

 

sudo vi  /usr/lib/i386-linux-gnu/cairo-dock/cairo-dock-launcher-API-daemon

 

但是下面直接说在多少行添加什么内容,引用的两个图片不能正常显示,于是我又找了一个参考(http://blog.sina.com.cn/s/blog_82fc65ea0101k1m8.html)

 

在33行,也就是 import dbus, dbus.service 前一行添加一行:
from time import sleep
在241行,也就是 ULWatcher()): 前一行添加一行:
sleep(5)

重启下就ok了

 

总结

这应该算是 Cairo-Dock 的一个 bug 吧。

我们现在要解决这个问题的方法就是修改 Cairo-Dock 的配置,让它延迟一段时间。

至于为什么这样就可以了我还不知道。

使用启动它时的延迟还不行 (cairo-dock -w 5), 我想可能事由于在登陆的时候(输入密码,进入桌面前),cairo-dock 已经启动了,所以失效了(原因不好说,只是我的猜测)。

 

那我们只好修改cairo-dock 的配置了。

但是不同的系统版本,cairo-dock 的位置貌似不一样,遇到的位置有

 

/usr/lib/cairo-dock/cairo-dock-launcher-API-daemon
/usr/lib/x86_64-linux-gnu/cairo-dock/cairo-dock-launcher-API-daemon
/usr/lib/i386-linux-gnu/cairo-dock/cairo-dock-launcher-API-daemon

总的来说都是在 /usr/lib 下面,所以我们可以在 这个位置下面搜索 cairo-dock 即可。

 

搜索命令

 

tiankonguse@tiankonguse:/usr/lib$ find ./ -name cairo-dock
./i386-linux-gnu/cairo-dock
tiankonguse@tiankonguse:/usr/lib$ 

 

然后进入相应的位置,按上面说的添加一个sleep即可。

 

参考

见文中的链接。

 

声明

   笔者最近意外的发现 笔者的个人网站 http://tiankonguse.com/ 的很多文章被其它网站转载,但是转载时未声明文章来源或参考自 http://tiankonguse.com/ 网站,因此,笔者添加此条声明。

    郑重声明:这篇记录《Cairo-Dock 系统关机无效》转载自 http://tiankonguse.com/ 的这条记录:http://tiankonguse.com/record/record.php?id=681

 

posted on 2014-06-19 20:29  tiankonguse  阅读(1571)  评论(0编辑  收藏  举报