Centos环境中更新grub 选项的正确方法

新公司的工作是开发管理VM的插件,类似于实现nova中的libvirtdriver

在处理SR-IOV设备时需要打开宿主机的iommu
网上的方法就是修改grub

grub在centos中有两个位置
/etc/default/grub
/boot/grub2/grub.cfg
以前我都是简单粗暴的个性/boot/grub2/grub.cfg 现在发现并不合理

正确的方法是
修改/etc/default/grub
然后执行:

dracut --regenerate-all --force
grub2-mkconfig -o /boot/grub2/grub.cfg
reboot

pyppeteer 常见问题解决方法

1, 无法启动chromium浏览器Running as root without –no-sandbox

错误如下:

[0505/060845.882080:ERROR:zygote_host_impl_linux.cc(89)] Running as root without --no-sandbox is not supported.

解决方法:
a,不用root运行
b,修改pyppeteer/launcher.py

    self.chrome_args.extend([
        '--headless',
        '--disable-gpu',
        '--no-sandbox', #增加这一行
        '--hide-scrollbars',
        '--mute-audio',
    ])

certificate verify failed 解决方法

开始研究pyppeteer,运行第一个example时就出现了,SSL: CERTIFICATE_VERIFY_FAILED,这是个常见的错,看了下原码是在下载chromium浏览器时无法验证证书造成的。

网上的解决方法都是,修改原码,不验证certificate,但这个不好。真正的解决方法为:

yum install ca-certificates
pip3.6 install -U requests[security]

运行完以上两步后再执行就OK了

Python Twisted 框架学习问题汇总

1. 使用Eclipse+Pydev时,有大量的方法在使用时编辑器会报Undefined variable错误,并下标红线,但实际上,运行并没有问题。如twisted.internet.reactor中的一些方法。

原因:
这是一个与Eclipse/Pydev执行静态分析方式相关的已知问题。
如果跳转到reactor源代码可以看到,在导入时,twisted.internet模块中实际上不存在reactor对象。模块为空。
当eclipse/pydev试图编译字节码时,静态分析在twisted.internet模块中看不到reactor对象,并将其标记为未定义的变量,即使它实际上在运行时存在(twisted是怎么实现的还得好好看看源码才行,现在是一头雾水)

解决方法:
在对报错的行的末尾写入: #@UndefinedVaria,这样可以让eclipse忽略错误,如

reactor.run() #@UndefinedVariable