openstack中利用screen命令重啟服務
在openstack的老一點的版本中,通常使用./rejoin-stack.sh重新啟動所有指定的服務,在最新的master分支中,並沒有rejoin-stack.sh,那么是不是重啟服務只能先./unstack.sh,然后再./stack.sh。當然不是了,這樣極其浪費時間。事實上,我們可以通過窗口管理器管理每一個已經啟動的openstack服務,在使用devstack安裝部署openstack后,多個openstack服務進程共享一個物理終端的窗口管理器,這個screen session里包含了多個screen窗口,每個對應一個openstack服務。我們可以在devstack目錄下運行screen -x stack彈出這個共享的screen窗口,如下所示:
我們可以看到這里總共開啟了20個服務進程,最后一個是horizon,之后可以使用ctrl+a+' 進入交換窗口,然后輸入對應服務進程的number(也可以直接ctrl+a+n切換到下一個服務進程對應的窗口,或者ctrl+a+p切換到上一個服務對應的窗口),在這里,我們直接輸入6進入n-api*窗口,也就是openstack nova的API服務,如下所示:
之后進入nova API窗口,ctrl+c 關閉nova API服務,如下所示:
關閉nova API服務后,我們運行nova list 將會出現錯誤,此時,我們在screen窗口按向上鍵,就可以回滾到開啟nova 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",
按回車運行此命令后,如下所示:
這將會開啟nova API服務,再運行nova list將不會出現錯誤。
至此,重啟openstack服務的講解已經完成。需要重啟別的服務也只需要切換到對應窗口先ctrl+c,再按向上鍵后回車運行即可。