diff --git a/scripts/services b/scripts/services index 5a4f44e7..87255c81 100755 --- a/scripts/services +++ b/scripts/services @@ -83,16 +83,22 @@ sort_service_list() { >> "${SORTED_LIST}" || true } -execute() { +services_start_queue() +{ log_info "Clearing out enqueued services actions" ngcp-service queue-clear log_info "Starting enqueued services actions mode" ngcp-service queue-start +} +execute() { while read -r line ; do exec_wrapper "${line}" done < "${SORTED_LIST}" +} +services_flush_enqueued() +{ log_info "Executing enqueued services actions" ngcp-service --queue=default,policy-rc.d queue-show ngcp-service --queue=default,policy-rc.d queue-run @@ -226,12 +232,17 @@ if [[ -s "${TMPFILE}" ]]; then log_debug "sort_service_list function" sort_service_list + services_start_queue + log_debug "execute function" execute else log_debug "No services file(s) reported - no explicit service state changed." fi +# Always flush the queues, to handle actions from package upgrades. +services_flush_enqueued + log_debug "services_sync_state function" services_sync_state