devstack重启服务脚本

devstack重启脚本是rejoin-stack.sh,但是我们在devstack中往往找不到这个文件,在stackoverflow上有人回答是bug,但似乎在每一个稳定版本中都会有这个脚本。

也就是说,如果大家需要这个重启的脚本,可以直接 git checkout 切换回之前的稳定的版本去找到这个脚本。

这是我从kilo中找到的脚本,放到devstack目录下直接运行即可。

#!/usr/bin/env bash

# This script rejoins an existing screen, or re-creates a
# screen session from a previous run of stack.sh.

TOP_DIR=`dirname $0`

# Import common functions in case the localrc (loaded via stackrc)
# uses them.
source $TOP_DIR/functions

source $TOP_DIR/stackrc

# if screenrc exists, run screen
if [[ -e $TOP_DIR/stack-screenrc ]]; then
    if screen -ls | egrep -q "[0-9].stack"; then
        echo "Attaching to already started screen session.."
        exec screen -r stack
    fi
    exec screen -c $TOP_DIR/stack-screenrc
fi

echo "Couldn't find $TOP_DIR/stack-screenrc file; have you run stack.sh yet?"
exit 1

代码逻辑很简单,就是如果session都存在,那就恢复screen即可;如果session不存在,那就从devstack/stack-screenrc中读取创建session。

那我们接下来看一下stack-screenrc文件。

sessionname stack
hardstatus alwayslastline '%{= .} %-Lw%{= .}%> %n%f %t*%{= .}%+Lw%< %-=%{g}(%{d}%H/%l%{g})'
setenv PROMPT_COMMAND /bin/true
screen -t shell bash
screen -t key bash
stuff "sudo tail -f /var/log/apache2/keystone.log
"
logfile /opt/stack/logs/key.log.2016-03-31-183313
log on
screen -t key-access bash
stuff "sudo tail -f /var/log/apache2/keystone_access.log
"
logfile /opt/stack/logs/key-access.log.2016-03-31-183313
log on
screen -t g-reg bash
stuff "/usr/local/bin/glance-registry --config-file=/etc/glance/glance-registry.conf
"
logfile /opt/stack/logs/g-reg.log.2016-03-31-183313
log on
screen -t g-api bash
stuff "/usr/local/bin/glance-api --config-file=/etc/glance/glance-api.conf
"
logfile /opt/stack/logs/g-api.log.2016-03-31-183313
log on
screen -t n-api bash
stuff "/usr/local/bin/nova-api
"
logfile /opt/stack/logs/n-api.log.2016-03-31-183313
log on
screen -t n-cond bash
stuff "/usr/local/bin/nova-conductor --config-file /etc/nova/nova.conf
"
logfile /opt/stack/logs/n-cond.log.2016-03-31-183313
log on
screen -t n-net bash
stuff "/usr/local/bin/nova-network --config-file /etc/nova/nova.conf
"
logfile /opt/stack/logs/n-net.log.2016-03-31-183313
log on
screen -t n-sch bash
stuff "/usr/local/bin/nova-scheduler --config-file /etc/nova/nova.conf
"
logfile /opt/stack/logs/n-sch.log.2016-03-31-183313
log on
screen -t n-novnc bash
stuff "/usr/local/bin/nova-novncproxy --config-file /etc/nova/nova.conf --web /opt/stack/noVNC
"
logfile /opt/stack/logs/n-novnc.log.2016-03-31-183313
log on
screen -t n-cauth bash
stuff "/usr/local/bin/nova-consoleauth --config-file /etc/nova/nova.conf
"
logfile /opt/stack/logs/n-cauth.log.2016-03-31-183313
log on
screen -t n-cpu bash
stuff "sg libvirtd '/usr/local/bin/nova-compute --config-file /etc/nova/nova.conf'
"
logfile /opt/stack/logs/n-cpu.log.2016-03-31-183313
log on
screen -t c-api bash
stuff "/usr/local/bin/cinder-api --config-file /etc/cinder/cinder.conf
"
logfile /opt/stack/logs/c-api.log.2016-03-31-183313
log on
screen -t c-sch bash
stuff "/usr/local/bin/cinder-scheduler --config-file /etc/cinder/cinder.conf
"
logfile /opt/stack/logs/c-sch.log.2016-03-31-183313
log on
screen -t c-vol bash
stuff "/usr/local/bin/cinder-volume --config-file /etc/cinder/cinder.conf
"
logfile /opt/stack/logs/c-vol.log.2016-03-31-183313
log on
screen -t horizon bash
stuff "sudo tail -f /var/log/apache2/horizon_error.log
"
logfile /opt/stack/logs/horizon.log.2016-03-31-183313
log on

显然,这个文件里面的才是真正执行的代码,代码逻辑也很简单,就是逐个设置session title并开启服务。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值