Revert "systemd: Always create the systemd unit files"
This reverts commit 15b0a5f1eb849a30bcea9a1e437e9a88ae2c6f92.
The change had an assumption that a service
is properly configured even when it isn't enabled.
The assumption is not true.
Change-Id: Ib5a8ffe63eaec15bc29bfdd133db7169507bab82
Closes-Bug: #1698129
diff --git a/functions-common b/functions-common
index 48ce725..30933ea 100644
--- a/functions-common
+++ b/functions-common
@@ -1508,13 +1508,8 @@
}
-# Defines a systemd service which can be enabled and started later on.
-# arg1: The openstack service name ('n-cpu', 'c-sch', ...).
-# arg2: The command to start (e.g. path to service binary + config files).
-# arg3: The group which owns the process.
-# arg4: The user which owns the process.
-# Returns: The systemd service name which got defined.
-function _define_systemd_service {
+# Helper function to build a basic unit file and run it under systemd.
+function _run_under_systemd {
local service=$1
local command="$2"
local cmd=$command
@@ -1529,7 +1524,9 @@
else
write_user_unit_file $systemd_service "$cmd" "$group" "$user"
fi
- echo $systemd_service
+
+ $SYSTEMCTL enable $systemd_service
+ $SYSTEMCTL start $systemd_service
}
# Helper to remove the ``*.failure`` files under ``$SERVICE_DIR/$SCREEN_NAME``.
@@ -1570,19 +1567,11 @@
local user=$4
local name=$service
- local systemd_service
time_start "run_process"
- # Note we deliberately make all service files, even if the service
- # isn't enabled, so it can be enabled by a dev manually on command
- # line.
- if [[ "$USE_SYSTEMD" = "True" ]]; then
- systemd_service=$(_define_systemd_service "$name" "$command" "$group" "$user")
- fi
if is_service_enabled $service; then
if [[ "$USE_SYSTEMD" = "True" ]]; then
- $SYSTEMCTL enable $systemd_service
- $SYSTEMCTL start $systemd_service
+ _run_under_systemd "$name" "$command" "$group" "$user"
elif [[ "$USE_SCREEN" = "True" ]]; then
if [[ "$user" == "root" ]]; then
command="sudo $command"