kde4的时区管理还是挺麻烦的,而且目前的版本在设置方面存在很多问题。
kde4的时区配置有几个部分参与:
kded_ktimezoned.so是kded服务,维护ktimezonedrc配置文件,因为考虑到不同系统在时区管理上的差异,比如solaris会维护/etc/timezone等,fedora使用了/etc/localtime,因此用了许多方法检测系统的时区设置,并且跟踪时区文件的变化,一旦发现有变动,就重新配置ktimezonedrc文件,向dbus发出变动消息。目前的kde4中这个模块的文件监控有问题,因此经常会有配置失败的情况。
kcm_clock是时间配置模块。可以用kcmshell4 clock进入配置,保存配置的时候会提示root密码(如果使用sudo kcmshell4 clock 或者su -c 执行的话,设置将会有问题)。这个模块现在有一些问题,比如只能设置‘自动设定日期时间’,否则更新是不成功的。这个模块利用/usr/libexec/kde4/kcmdatetimehelper写入日期、时间及时区信息,kcmdatetimehelper利用zic更新/etc/localtime为新的时区,在/usr/share/config/kcmclockrc中记录界面修改的用户配置。之前发现kcmdatetimehelper代码有问题,这个文件由kcmdatetimehelper写在错误的位置,导致kcmclock.so无法得到上次的界面设置。
kcm_clock利用ksystemtimezones来显示当前时区,ksystemtimezones依赖kded_ktimezoned发出的dbus消息来更新缓存中的时区信息。
阅读(1367) | 评论(0) | 转发(0) |