最新消息:欢迎访问若有所思,如果你也有与我相同的兴趣爱好,请关注我的站点。

SwitchHosts linux下无法保存修正

问题排查 若远 8255浏览 0评论
||||| 0 |||||

概述

switchHosts

SwitchHosts是一款快速切换host绑定的小工具。如果你所在的团队同一个应用开发有多套环境(开发、测试、生产等),那么使用他就非常方便,而且可以减少因为绑定引起的故障。只需要简单的点选就可以完成host切换。

问题描述

使用pyInstaller编译SwitchHosts源码后,就会产生一个SwitchHosts的可执行文件,直接执行就可以看到SwitchHosts的主界面,但是奇怪的是一旦选择切换方案时程序就会崩溃。尝试使用shell的方式启动重试刚才的操作发现发生Segement Fault,猜想应该是没有初始化一些组件造成的。上错误日志:

由于手上没有好的IDE环境来调试wxPython程序,所以只好采用最古老的插入调试日志代码的方式来寻找问题。很快就定位到问题发生在pynotify.show()调用上,查阅一些资料后发现pynotify是依赖于libnotify库实现的,但是libnotify在0.7.6(包括)之后的版本调用前要求显示的使用init方法初始化组件,知道问题后就非常容易搞定。

pynotify的正常使用方法:

已修正问题:

  1. 修正libnotify 0.76版本以后需要初始化后才能使用
  2. 修正在fedora 20下(未验证其他linux版本)托盘菜单崩溃问题

Patch Link: https://github.com/oldj/SwitchHosts/commit/ee0e92d839785162372f348196ac9f52698c2942

仍未修正的问题:

  1. 如果以root身份安装(默认)nscd服务,那么其实是无法刷新dns缓存的
  2. 当前方案高亮显示问题,这是由wxPyhton的字体样式设置不兼容LINUX引起的,不影响功能所以也没有花时间去找解决方案

参考资料

  1. SwitchHosts Github:https://github.com/oldj/SwitchHosts
  2. Ubuntu Form: http://ubuntuforums.org/showthread.php?t=447613

转载请注明:若有所思-胡磊 » SwitchHosts linux下无法保存修正

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址