如何重新启动使用 devstack 安装的特定 openstack-service?
7 回答
重新加入堆栈屏幕为
./rejoin-stack.sh
并使用 ctrl+a+" 移动到指定的服务页面,然后键入您需要去的屏幕编号。
按 9,然后按 ctrl+C。该服务现在将停止。重新运行以下 devstack 命令来启动服务:(例如对于 nova-network) cd /opt/stack/nova && /usr/bin/nova-network --config /etc/nova/nova.conf || echo "n-net 启动失败" | 三通“/opt/stack/stack/n-net.failure”
按 Ctrl+d 从堆栈屏幕分离。
运行屏幕命令
screen -r
现在,您将在屏幕窗口中看到 Openstack 服务列表;像屏幕底部的“q-svc”、“horizon”、“key-access”;当前活动屏幕将标有*,如“horizon*”
要移动到特定的 Openstack 服务,请按
"Ctrl + a" and "0-9"
Example: "Ctrl + a" 5
跳转到实际服务;您还可以使用以下命令移至下一个或上一个屏幕
"Ctrl + a" and n --- > for next
"Ctrl + a" and p --- > for previous
现在停止和启动服务;转到相应的屏幕窗口并按
"Ctrl + c"
停止服务;现在,这将在相应的屏幕窗口中显示 bash 屏幕;要启动服务,请按向上箭头标记以在屏幕窗口中查看最后执行的命令,然后按 Enter 启动相同的命令。
通过屏幕来启动和停止配置为与 Devstack 一起运行的 Openstack 服务,生活变得更加轻松。
当 ./stack.sh 完成时,openstack 表面上正在运行。
作为您的堆栈用户,您可以发出以下命令:
screen -dr
这应该为每个服务打开一个带有窗口的屏幕会话。这些服务是从那些屏幕终端会话或 pty 运行的。
您可以简单地终止该进程并从这些 pty 重新启动它。
当然,标准的逻辑操作顺序也适用。如果 mysql 死了,nova-api 将无法很好地启动。keystone 关闭也是如此。所以,要注意依赖关系。
如果您不确定如何在终端中执行服务,请先执行某项ps auxww | grep service
或某项操作。这应该提供一些关于如何再次运行二进制文件的见解。
祝你好运。
rejoin-stack.sh 根据这个git commit被删除,你需要做 screen -c /path/to/devstack_install/stack-screenrc
以 root 身份运行此命令(例如:启动 keystone 服务)
$ systemctl start devstack@keystone.service
您可以根据需要使用restart
, stop
,status
等代替start
。
您也可以使用通配符。如下所示。
$ systemctl start devstack@*
=> 它将启动所有 devstack 服务。
您可以使用它 systemctl start devstack@*
来重新启动每个 devstack 服务
新版本的 devstack 发生了变化。
默认情况下,DevStack 将所有服务作为 systemd 单元文件运行。Systemd 现在是几乎所有 Linux 发行版的默认初始化系统,并且 systemd 编码并解决了许多与运行不佳的进程相关的问题。
假设单位为 n-cpu 以使示例更清晰。
Enable a unit (allows it to be started):
sudo systemctl enable devstack@n-cpu.service
有关更多信息,请访问https://docs.openstack.org/devstack/latest/systemd.html