拉开窗帘着实吓一跳,马上微信金牌物业,立马派人上门搞定,师傅说这事经常有,可见生态要多好
月份:2015年10月
十年少爬的白云山近期要一次性全补上
可惜没有庐山那种终身卡,要不然更有收藏欲望。。。
浏览器书签功能脚本导入文件模版
今天用bookmark script快速实现了一个小功能想分享给朋友
为了将使用过程包装成足够简单易用,我想到了用书签文件交流这种方式
本以为用浏览器导出对应的书签即可,没想到大部分的浏览器只有全部导出功能
于是非常必要有一个最小结构的模版方便随时填充随时交换
1 2 3 4 5 6 7 8 9 10 |
<!DOCTYPE NETSCAPE-Bookmark-file-1> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"> <TITLE>Bookmarks</TITLE> <H1>Bookmarks</H1> <DL> <DT><H3>Script</H3></DT> <DL> <DT><A HREF="javascript:void(alert('test'))">test</A></DT> </DL> </DL> |
odoo.py auto-reload dev自动重启服务ENOSPC系统错误解决
Odoo8:
正常环境下直接–auto-reload参数运行缺库错误
1 |
ImportError: No module named pyinotify |
pyinotify是一个Python模块,用来监测文件系统的变化
pyinotify依赖于Linux内核的inotify功能,是一个事件驱动的通知器,其通知接口通过三个系统调用从内核空间到用户空间
pyinotify结合这些系统调用,并提供一个顶级的抽象和一个通用的方式来处理这些功能
安装
pip install pyinotify
运行时错误:
1 2 3 |
pyinotify.py", line 1943, in add_watch self._inotify_wrapper.str_errno())) UnicodeDecodeError: 'ascii' codec can't decode byte 0xe8 in position 6: ordinal not in range(128) |
Odoo9:
正常环境下直接–dev参数运行日志警告
1 |
WARNING ? openerp.service.server: 'watchdog' module not installed. Code autoreload feature is disabled |
Watchdog是一个跨平台的Python库和shell工具,可以监视文件系统事件。超级好用,并且容易上手
安装
pip install watchdog
运行时错误:
1 2 3 |
watchdog/observers/inotify_c.py", line 402, in _raise_error raise OSError("inotify watch limit reached") OSError: inotify watch limit reached |
Node:
想起来当初刚玩node时也时常会遇到这个错误
不过大多直接sudo运行就可解决,简单理解权限问题也没有深究
但是odoo不能这么搞,源码限制:
1 |
Running as user 'root' is a security risk, aborting. |
还好从odoo9的报错信息里显而易见问题出自底层inotify对一般用户的限制
简单学习了下,得知其有个max_user_watches的内核参数限制普通用户一次最多关联监控个数。一般默认值8192,对于odoo这种大工程或稍大一点的node项目来说明显是不够用的
先通过如下方式验证:
1 2 |
[srj@x1c /]$ cat /proc/sys/fs/inotify/max_user_watches 8192 |
然后通过su切换root身份动态更新配置值放大64倍
1 |
[srj@x1c /]$ su -c 'echo 524288 > /proc/sys/fs/inotify/max_user_watches' |
接着用不同版本的启动参数运行即可看到AutoReload watcher running成功了
1 2 |
INFO ? openerp.service.server: Watching addons folder /home/srj/.local/share/Odoo/addons/8.0 INFO ? openerp.service.server: AutoReload watcher running |
最后还需要将动态修改的参数通过静态配置方式固化下来,否则每次重启还需要重复修改
Centos7下我不建议直接修改/etc/sysctl.conf文件配置,而是通过sysctl.d目录新建独立配置
1 2 3 4 5 |
[root@x1c sysctl.d]# pwd /etc/sysctl.d [root@x1c sysctl.d]# echo fs.inotify.max_user_watches = 524288 > 91-inotify.conf [root@x1c sysctl.d]# cat 91-inotify.conf fs.inotify.max_user_watches = 524288 |
然后重新启动或者使用
1 2 3 4 |
[root@x1c sysctl.d]# sysctl --system * Applying /etc/sysctl.d/91-inotify.conf ... fs.inotify.max_user_watches = 524288 * Applying /etc/sysctl.conf ... |
sysctl命令system参数立刻生效
海南万宁新中农场
每个人心中都有一个自己的农场梦
国庆外面熙熙攘攘,但这里可以找到内心久违的平静