要了解一个组件做了什么,可以去官方查看关于该组件的说明,甚至一些架构设计在官方文档中也有体现,但作为拼搏在前线的程序员,光有这些是不够的,还需要知道这些组件是如何实现的。要知道如何实现,你可以去看源代码,要是你也像我一样是个菜鸟,肯定会有一些地方看不大明白,我一般会选择debug,看着代码被一行一行的执行,那种不可控的恐惧和底气不足的怀疑烟消云散,我知道他们是怎么工作的了
debug三部曲
找到服务入口文件
在《allinone—更亲密的接触》中讲到:“从/usr/lib/systemd/system/找到openstack某组件的启动单元,查看该单元内容就可以找到该组件的运行入口(也可以使用ps -ef | grep ceilometer-api
,ceilometer-api可以是其他组件的任意服务,结果列表中会包含类似/usr/bin/python2 /usr/bin/ceilometer-api --logfile /var/log/ceilometer/api.log
,“/usr/bin/ceilometer-api”就是服务的入口了)”
编辑服务入口文件
编辑服务入口文件:vim /usr/bin/ceilometer-api
,修改后如下:
#!/usr/bin/python2