Robustify service shutdown
* Save PID when using screen in screen_it()
* Add screen_stop()
* Call out service stop_*() in unstack.sh functions so screen_stop()
can do its thing
Closes-bug: 1183449
Change-Id: Iac84231cfda960c4197de5b6e8ba6eb19225169a
diff --git a/lib/ceilometer b/lib/ceilometer
index fac3be1..211303f 100644
--- a/lib/ceilometer
+++ b/lib/ceilometer
@@ -162,7 +162,7 @@
function stop_ceilometer() {
# Kill the ceilometer screen windows
for serv in ceilometer-acompute ceilometer-acentral ceilometer-anotification ceilometer-collector ceilometer-api ceilometer-alarm-notifier ceilometer-alarm-evaluator; do
- screen -S $SCREEN_NAME -p $serv -X kill
+ screen_stop $serv
done
}
diff --git a/lib/cinder b/lib/cinder
index cbe732e..11414be 100644
--- a/lib/cinder
+++ b/lib/cinder
@@ -556,7 +556,7 @@
function stop_cinder() {
# Kill the cinder screen windows
for serv in c-api c-bak c-sch c-vol; do
- screen -S $SCREEN_NAME -p $serv -X kill
+ screen_stop $serv
done
if is_service_enabled c-vol; then
diff --git a/lib/glance b/lib/glance
index 135136d..80868ae 100644
--- a/lib/glance
+++ b/lib/glance
@@ -206,8 +206,8 @@
# stop_glance() - Stop running processes
function stop_glance() {
# Kill the Glance screen windows
- screen -S $SCREEN_NAME -p g-api -X kill
- screen -S $SCREEN_NAME -p g-reg -X kill
+ screen_stop g-api
+ screen_stop g-reg
}
diff --git a/lib/heat b/lib/heat
index e44a618..29cd967 100644
--- a/lib/heat
+++ b/lib/heat
@@ -175,7 +175,7 @@
function stop_heat() {
# Kill the screen windows
for serv in h-eng h-api h-api-cfn h-api-cw; do
- screen -S $SCREEN_NAME -p $serv -X kill
+ screen_stop $serv
done
}
diff --git a/lib/keystone b/lib/keystone
index 29b9604..dc6a730 100644
--- a/lib/keystone
+++ b/lib/keystone
@@ -421,7 +421,7 @@
# stop_keystone() - Stop running processes
function stop_keystone() {
# Kill the Keystone screen window
- screen -S $SCREEN_NAME -p key -X kill
+ screen_stop key
}
diff --git a/lib/nova b/lib/nova
index 39685a8..178f8ee 100644
--- a/lib/nova
+++ b/lib/nova
@@ -705,7 +705,7 @@
# Some services are listed here twice since more than one instance
# of a service may be running in certain configs.
for serv in n-api n-cpu n-crt n-net n-sch n-novnc n-xvnc n-cauth n-spice n-cond n-cell n-cell n-api-meta; do
- screen -S $SCREEN_NAME -p $serv -X kill
+ screen_stop $serv
done
if is_service_enabled n-cpu && [[ -r $NOVA_PLUGINS/hypervisor-$VIRT_DRIVER ]]; then
stop_nova_hypervisor
diff --git a/lib/trove b/lib/trove
index f8e3edd..870afbe 100644
--- a/lib/trove
+++ b/lib/trove
@@ -198,7 +198,7 @@
function stop_trove() {
# Kill the trove screen windows
for serv in tr-api tr-tmgr tr-cond; do
- screen -S $SCREEN_NAME -p $serv -X kill
+ screen_stop $serv
done
}