Devstack — screen 调试工具的使用

目录

  • 目录
  • 为什么要使用 screen 工具
    • 启动 screen
    • screen 的切换常用
    • 退出和重新连接 screen
    • Restart Openstack Services
  • screen 指令选项总览
    • Openstack 重启指令
      • glance-api
      • glance-registry
      • nova-api
      • nova-conduter
      • nova-crt
      • nova-network
      • nova-scheduter
      • nova-novnc
      • nova-cauth
      • nova-cpu
      • c-api
      • c-sch
      • c-vol

为什么要使用 screen 工具 ?

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

启动 screen

screen -x stack

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

script /dev/null

可以看见 Terminal 最下方有一串白色的字符串,其中的每一个数字对应一个子 screen 也就是一个 Openstack services 。
我们可以通过快捷键+数字的组合来切换到对应的子 screen 。’ * ‘ 所在的处的位置表示当前的 screen 是该 Service 的 screen。EXAMPLE:

14$(L) c-api  15-$(L) c-sch   16$(L) c-vol*

screen 的切换(常用)

  • CTRL+a + number :切换到数字 number 对应的子 screen 中(number == 0 ⇒ shell)
  • CTRL + a + ’ ⇒ 输入number:当 number > 10 时,可以使用这种方法来切换,当然 number < 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 + ?:获取帮助信息

退出和重新连接 screen

  • 退出

    1. CRTL + a + ’ ⇒ 输入 0 ,然后再输入screen -d
    2. CRTL + a + d
  • 重新连接
#查看当前用户启动的 screen
fanguiju@jmilkfan:~$ screen -ls
There is a screen on:
    20569.stack (08/02/16 11:36:47) (Detached)
1 Socket in /var/run/screen/S-fanguiju.

#上一条指令的Output
fanguiju@jmilkfan:~$ screen -r 20569  

Restart Openstack Services

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

screen 指令选项总览

fanguiju@fanguiju:~/devstack$ screen --help
Use: screen [-opts] [cmd [args]]
 or: screen -r [host.tty]

Options:
-4            Resolve hostnames only to IPv4 addresses.
-6            Resolve hostnames only to IPv6 addresses.
-a            Force all capabilities into each window's termcap.
-A -[r|R]     Adapt all windows to the new display width & height.
-c file       Read configuration file instead of '.screenrc'.
-d (-r)       Detach the elsewhere running screen (and reattach here).
-dmS name     Start as daemon: Screen session in detached mode.
-D (-r)       Detach and logout remote (and reattach here).
-D -RR        Do whatever is needed to get a screen session.
-e xy         Change command characters.
-f            Flow control on, -fn = off, -fa = auto.
-h lines      Set the size of the scrollback history buffer.
-i            Interrupt output sooner when flow control is on.
-l            Login mode on (update /var/run/utmp), -ln = off.
-ls [match]   or -list. Do nothing, just list our SockDir [on possible matches].
-L            Turn on output logging.
-m            ignore $STY variable, do create a new screen session.
-O            Choose optimal output rather than exact vt100 emulation.
-p window     Preselect the named window if it exists.
-q            Quiet startup. Exits with non-zero return code if unsuccessful.
-r [session]  Reattach to a detached screen process.
-R            Reattach if possible, otherwise start a new session.
-s shell      Shell to execute rather than $SHELL.
-S sockname   Name this session <pid>.sockname instead of <pid>.<tty>.<host>.
-t title      Set title. (window's name).
-T term       Use term as $TERM for windows, rather than "screen".
-U            Tell screen to use UTF-8 encoding.
-v            Print "Screen version 4.01.00devel (GNU) 2-May-06".
-wipe [match] Do nothing, just clean up SockDir [on possible matches].
-x            Attach to a not detached screen. (Multi display mode).
-X            Execute <cmd> as a screen command in the specified session.

Openstack 重启指令

screen 有一个非常不方便的地方就是,有些电脑不能通过 CTRL + [|] 来实现屏幕的滚动,这根本无法很好的观察 Log ,所以建议将启动指令 Copy 另外一个 Terminal 执行。
注意:下列的指令的/opt/stack/参数因各人的安装路径不同而异。
restart glance:

glance-api

/usr/local/bin/glance-api --config-file=/etc/glance/glance-api.conf & echo $! >/opt/stack/status/stack/g-api.pid; fg || echo "g-api failed to start" | tee "/opt/stack/status/stack/g-api.failure"

glance-registry

/usr/local/bin/glance-registry --config-file=/etc/glance/glance-registry.conf & echo $! >/opt/stack/status/stack/g-reg.pid; fg || echo "g-reg failed to start" | tee "/opt/stack/status/stack/g-reg.failure"

nova-api

sudo /usr/local/bin/nova-api & echo $! >/opt/stack/status/stack/n-api.pid; fg || echo "n-api failed to start" | tee "/opt/stack/status/stack/n-api.failure"

nova-conduter

/usr/local/bin/nova-conductor --config-file /etc/nova/nova.conf & echo $! >/opt/stack/status/stack/n-cond.pid; fg || echo "n-cond failed to start" | tee "/opt/stack/status/stack/n-cond.failure"

nova-crt

/usr/local/bin/nova-cert --config-file /etc/nova/nova.conf & echo $! >/opt/stack/status/stack/n-crt.pid; fg || echo "n-crt failed to start" | tee "/opt/stack/status/stack/n-crt.failure"

nova-network

/usr/local/bin/nova-network --config-file /etc/nova/nova.conf & echo $! >/opt/stack/status/stack/n-net.pid; fg || echo "n-net failed to start" | tee "/opt/stack/status/stack/n-net.failure"

nova-scheduter

/usr/local/bin/nova-scheduler --config-file /etc/nova/nova.conf & echo $! >/opt/stack/status/stack/n-sch.pid; fg || echo "n-sch failed to start" | tee "/opt/stack/status/stack/n-sch.failure"

nova-novnc

/usr/local/bin/nova-novncproxy --config-file /etc/nova/nova.conf --web /opt/stack/noVNC & echo $! >/opt/stack/status/stack/n-novnc.pid; fg || echo "n-novnc failed to start" | tee "/opt/stack/status/stack/n-novnc.failure"

nova-cauth

/usr/local/bin/nova-consoleauth --config-file /etc/nova/nova.conf & echo $! >/opt/stack/status/stack/n-cauth.pid; fg || echo "n-cauth failed to start" | tee "/opt/stack/status/stack/n-cauth.failure"

nova-cpu

sg libvirtd '/usr/local/bin/nova-compute --config-file /etc/nova/nova.conf' & echo $! >/opt/stack/status/stack/n-cpu.pid; fg || echo "n-cpu failed to start" | tee "/opt/stack/status/stack/n-cpu.failure"

restart cinder:

c-api

/usr/local/bin/cinder-api --config-file /etc/cinder/cinder.conf & echo $! >/opt/stack/status/stack/c-api.pid; fg || echo "c-api failed to start" | tee "/opt/stack/status/stack/c-api.failure"

c-sch

/usr/local/bin/cinder-scheduler --config-file /etc/cinder/cinder.conf & echo $! >/opt/stack/status/stack/c-sch.pid; fg || echo "c-sch failed to start" | tee "/opt/stack/status/stack/c-sch.failure"

c-vol

/usr/local/bin/cinder-volume --config-file /etc/cinder/cinder.conf & echo $! >/opt/stack/status/stack/c-vol.pid; fg || echo "c-vol failed to start" | tee "/opt/stack/status/stack/c-vol.failure"
时间: 2024-09-07 02:52:58

Devstack — screen 调试工具的使用的相关文章

拒绝从入门到放弃_《Openstack 设计与实现》必读目录

目录 目录 关于这本书 必看知识点 最后 关于这本书 <Openstack 设计与实现>是一本非常值得推荐的书,为数不多的 Openstack 开发向中文书籍中的精品.如果希望从事 Openstack 开发,这是不二的选择.错别字少(真的很少),语句通顺(国人写的),通用技术知识点完整,偏重开发向等都是这本书的优点.但知识深入不够,欲言又止,看不爽是我最直接的感受.很多时候要借着查阅别的资料才能理解透彻.总的来说 4 星推荐,Openstack 开发入门必备. 值得一说的是,Openstack

Openstack 实现技术分解 (1) 开发环境 — Devstack 部署案例详解

目录 目录 前言 系统环境 Devstack 下载源码 配置文件 localconf localrc 简易的环境脚本 openrc 部署 Devstack 自动化部署流程 部署案例 单节点 Nova-Network 模式部署 多节点 Nova-Network 模式部署 多节点 Neutron 模式部署 单节点 Neutron 模式部署 部署样例 使用 不使用 FIXED-IP 让 Instances 直接使用连接外网的网段 最后 ERROR 前言 在继上一个系列博文 << 用 Flask 来写

Devstack 配置文件说明手册

本文为minxihou的翻译文章,转载请注明出处Bob Hou: http://blog.csdn.net/minxihou JmilkFan:minxihou的技术博文方向是 算法&Openstack自动化 ,写得很好,值得推荐. : ) 目录 目录 配置 1openrc文件 最小化配置一个localconf 历史注释 配置节点 1配置服务的repo源 2安装路径 3日志 31启用记录日志 32记录服务输出日志 33启用系统日志 4后端数据库 5RPC Backend 6Apache前端 7从

部署 DevStack - 每天5分钟玩转 OpenStack(17)

本节按照以下步骤部署 DevStack 实验环境,包括控制节点和计算节点 创建虚拟机 按照物理资源需求创建 devstack-controller 和 devstak-compute 虚拟机 安装操作系统 安装 Ubuntu 14.04,并配置 eth0 的 IP devstack-controller  192.168.104.10 devstak-compute    192.168.104.11 下载代码 下载 devstack 代码,并切换到 stable/liberty 分支 apt-

10个最好用的在线编译/调试工具

本文要推荐10个最好用的在线编译器,以下顺序不按排名先后: 1.ideone 可以在线编译盒调试C++/C++,JAVA,PHP,Python,Perl,以及其他40多种编程语言. http://www.aliyun.com/zixun/aggregation/11307.html">官方网站:www.ideone.com 2.codepad codepad.org是一个提供在线编译/调试工具的网站,你可以将代码复制到这里,然后提交运行,就会生成一个URL连接,将此URL连接通过邮件发送至

screen-Android 的 Splash Screen不能运行

问题描述 Android 的 Splash Screen不能运行 我开发一个 android 应用程序,当检查文件是否更新,程序启动时应该显示一个 Splash Screen. 如果文件不更新,它启动了一个 Async Task 来更新文件.问题是当文件实际上需要更新时,只显示 Splash Screen 的图像,否则,执行检查时会显示黑屏. SplashScreen activity: public class SplashActivity extends Activity { private

Linux中的Screen命令使用技巧详解

Linux的screen命令不错,习惯了你会觉得它比windows的任务栏好用多了.下面是我的.screenrc,仅供参考 Linux的screen命令不错,习惯了你会觉得它比windows的任务栏好用多了.下面是我的.screenrc,仅供参考. # # ~/.screenrc # # 启动时不显示欢迎屏幕 startup_message off #  定义screen的功能键为Ctrl-Z.向终端输入Ctrl-Z时应按 Ctrl-Z z. escape ^Zz # 屏幕缓冲区 1024 行.

JAVASCRIPT offset screen scroll client

文章简介:JS offset screen scroll client.   obj.offset[WidthHeightTopLeft] 取控件相对于父控的位置event.offset[XY] 取鼠标相在触发事件的控件中的坐标event.screen[XY] 鼠标相对于屏幕坐标event.client[XY] 鼠标相对于网页坐标在在obj.scroll[WidthHeightTopLeft] 获取对象滚动的大小obj.client[WidthHeightTopLeft] 获取对象可见区域的大小

PHP调试工具Xdebug安装配置教程

说道PHP代码调试,对于有经验的PHPer,通过echo.print_r.var_dump函数,或PHP开发工具zend studio.editplus可解决大部分问题,但是对于PHP入门学习的童鞋来说有一定的难度,而且仅仅通过上述这些PHP调试手段,也很难准确发现PHP性能方面的问题,Xdebug是一个非常有用的PHP调试工具. Xdebug作为PHP调试工具,提供了丰富的调试函数,也可将Xdebug安装配置为zend studio.editplus调试PHP的第三方插件,通过开启自动跟踪(a