天天看点

Devstack — screen 调试工具的使用目录为什么要使用 screen 工具 ?screen 指令选项总览

<a href="#%E7%9B%AE%E5%BD%95">目录</a>

<a href="#%E4%B8%BA%E4%BB%80%E4%B9%88%E8%A6%81%E4%BD%BF%E7%94%A8-screen-%E5%B7%A5%E5%85%B7">为什么要使用 screen 工具</a>

<a href="#%E5%90%AF%E5%8A%A8-screen">启动 screen</a>

<a href="#screen-%E7%9A%84%E5%88%87%E6%8D%A2%E5%B8%B8%E7%94%A8">screen 的切换常用</a>

<a href="#%E9%80%80%E5%87%BA%E5%92%8C%E9%87%8D%E6%96%B0%E8%BF%9E%E6%8E%A5-screen">退出和重新连接 screen</a>

<a href="#restart-openstack-services">Restart Openstack Services</a>

<a href="#screen-%E6%8C%87%E4%BB%A4%E9%80%89%E9%A1%B9%E6%80%BB%E8%A7%88">screen 指令选项总览</a>

<a href="#openstack-%E9%87%8D%E5%90%AF%E6%8C%87%E4%BB%A4">Openstack 重启指令</a>

<a href="#glance-api">glance-api</a>

<a href="#glance-registry">glance-registry</a>

<a href="#nova-api">nova-api</a>

<a href="#nova-conduter">nova-conduter</a>

<a href="#nova-crt">nova-crt</a>

<a href="#nova-network">nova-network</a>

<a href="#nova-scheduter">nova-scheduter</a>

<a href="#nova-novnc">nova-novnc</a>

<a href="#nova-cauth">nova-cauth</a>

<a href="#nova-cpu">nova-cpu</a>

<a href="#c-api">c-api</a>

<a href="#c-sch">c-sch</a>

<a href="#c-vol">c-vol</a>

当 Devstack 编译安装完 OpenStack 后,我们是不能通过 init 脚本或者 service 指令来与各个 Openstack Services 进行交互的。

也就是说我们无法像使用 RDO 安装那样可以通过 <code>systemctl restart openstack-nova-api.serice</code> 来重启 nova-api 服务。

因为 Devstack 的设计初衷是便于 Openstack developers 开发和调试 Openstack 代码,所以 Devstack 只能通过 screen 来启动服务,而且每一个 Openstack Services 都是一个子 screen 。Devstack 部署的 Openstack 相信大家都会遇见一个问题,当物理机重启后 Services 怎么重启,其实只需要执行 <code>./rejoin-stack.sh</code>就好了,其原理跟启动 screen 是一样的,将没有启动的 Services 启动,已经启动的不会被覆盖,启动完成后自动进入 screen 。在 screen 中我们不仅仅可以启动 Services ,我们还能够非常清晰简便的切换查看各个 Services 的 Log 。本篇主要介绍了 screen 的使用,应该是多有 Openstack 开发者的必备技能吧。

Devstack — screen 调试工具的使用目录为什么要使用 screen 工具 ?screen 指令选项总览

注意:如果启动失败,可以尝试在执行下面的指令之后在重新尝试启动:

可以看见 Terminal 最下方有一串白色的字符串,其中的每一个数字对应一个子 screen 也就是一个 Openstack services 。

我们可以通过快捷键+数字的组合来切换到对应的子 screen 。’ * ‘ 所在的处的位置表示当前的 screen 是该 Service 的 screen。EXAMPLE:

CTRL+a + number :切换到数字 number 对应的子 screen 中(number == 0 ⇒ shell)

Devstack — screen 调试工具的使用目录为什么要使用 screen 工具 ?screen 指令选项总览

CTRL + a + ’ ⇒ 输入number:当 number &gt; 10 时,可以使用这种方法来切换,当然 number &lt; 10 时,也可以使用。 推荐*

CTRL + a + n :切换到下一个 screen

CTRL + a + p:切换到前一个 screen

CTRL + a + a:返回上一个 screen

CRTL + a + 稍等一秒 + shift + ‘:显示所有的 screen 的列表

CTRL + [:开始滚动模式 ,然后可以使用上下左右键滚屏

CTRL + ]:退出滚动模式

CTRL + a + H :保存 screen 到日志文件,再按一次停止保存

CTRL + a + ?:获取帮助信息

退出:

CRTL + a + ’ ⇒ 输入 0 ,然后再输入<code>screen -d</code>

CRTL + a + d

重新连接:

CTRL + c:终止一个 screen ,Stop the services

进入希望 Restart 的 Openstack Services 的 screen 中,然后输入 CTRL + c 结束这个进程,输入 ↑并重新执行上一条指令。

Devstack — screen 调试工具的使用目录为什么要使用 screen 工具 ?screen 指令选项总览

screen 有一个非常不方便的地方就是,有些电脑不能通过 CTRL + [|] 来实现屏幕的滚动,这根本无法很好的观察 Log ,所以建议将启动指令 Copy 另外一个 Terminal 执行。

注意:下列的指令的<code>/opt/stack/</code>参数因各人的安装路径不同而异。

restart glance:

restart cinder: