screen的使用

使用RDO安装openstack,可以通过systemctl restart等命令来重启服务,但是由于devstack的设计初衷是为了便于openstack developers开发和调试openstack代码的,所以devstack只能通过screen来启动服务,而且每一个openstack services都是一个子screen。意思就是说通过devstack安装服务的话,只能通过screen进行调试,每一个openstack服务都有其对应的screen。

devstack部署的openstack经常遇到的一个问题就是,当物理机重启后services怎么重启,只需要执行./rejoin-stack.sh即可,其原理跟启动screen一样,将没有启动的services启动,已经启动的不会被覆盖,启动完成后自动进入screen。在screen中不仅仅可以启动services,也可以清晰简便的切换查看各个services的Log。

启动screen

screen -x stack

!注意:如果启动失败可以使用下面的命令之后再重新尝试启动:

script /dev/null

可以看到上面截图的最下面一串字符串,其中每一个数字对应一个子screen,也就是openstack services。

可以通过快捷键+数字的组合来切换到对应的子screen。“*”所在的位置表示当前的screen是该服务的screen.。

screen的切换

ctrl+a+number:切换到数字number对应的子screen中(数字如果是0就换到shell当中)

如果发现有服务没有启动的话,可以使用下面的命令进行启动

screen -c ~/github/devstack-ocata/devstack/stack-screenrc

可以使用screen -ls查看当前用户的screen的窗口有哪些,如果是attached状态的话,表示服务已经起来

可以使用screen -x stack进到screen窗口里面,然后使用ctrl+a+n切到下一个窗口,ctrl+a+p切到上一个窗口

如果修改了代码,或者在代码里面使用了pdb断点,这时候需要重启服务,可以在当前窗口按下ctrl+c终止当前窗口的服务,然后按下上箭头,然后再回车就可以重启服务了。

每一个窗口只是展示了一部分的日志,要查看全部的日志可以到下面这个路径

/opt/stack/logs/

你可能感兴趣的:(screen的使用)