|
...
|
...
|
@@ -1508,13 +1508,8 @@ EOF
|
|
1508
|
1508
|
|
|
1509
|
1509
|
}
|
|
1510
|
1510
|
|
|
1511
|
|
-# Defines a systemd service which can be enabled and started later on.
|
|
1512
|
|
-# arg1: The openstack service name ('n-cpu', 'c-sch', ...).
|
|
1513
|
|
-# arg2: The command to start (e.g. path to service binary + config files).
|
|
1514
|
|
-# arg3: The group which owns the process.
|
|
1515
|
|
-# arg4: The user which owns the process.
|
|
1516
|
|
-# Returns: The systemd service name which got defined.
|
|
1517
|
|
-function _define_systemd_service {
|
|
|
1511
|
+# Helper function to build a basic unit file and run it under systemd.
|
|
|
1512
|
+function _run_under_systemd {
|
|
1518
|
1513
|
local service=$1
|
|
1519
|
1514
|
local command="$2"
|
|
1520
|
1515
|
local cmd=$command
|
|
...
|
...
|
@@ -1529,7 +1524,9 @@ function _define_systemd_service {
|
|
1529
|
1529
|
else
|
|
1530
|
1530
|
write_user_unit_file $systemd_service "$cmd" "$group" "$user"
|
|
1531
|
1531
|
fi
|
|
1532
|
|
- echo $systemd_service
|
|
|
1532
|
+
|
|
|
1533
|
+ $SYSTEMCTL enable $systemd_service
|
|
|
1534
|
+ $SYSTEMCTL start $systemd_service
|
|
1533
|
1535
|
}
|
|
1534
|
1536
|
|
|
1535
|
1537
|
# Helper to remove the ``*.failure`` files under ``$SERVICE_DIR/$SCREEN_NAME``.
|
|
...
|
...
|
@@ -1570,19 +1567,11 @@ function run_process {
|
|
1570
|
1570
|
local user=$4
|
|
1571
|
1571
|
|
|
1572
|
1572
|
local name=$service
|
|
1573
|
|
- local systemd_service
|
|
1574
|
1573
|
|
|
1575
|
1574
|
time_start "run_process"
|
|
1576
|
|
- # Note we deliberately make all service files, even if the service
|
|
1577
|
|
- # isn't enabled, so it can be enabled by a dev manually on command
|
|
1578
|
|
- # line.
|
|
1579
|
|
- if [[ "$USE_SYSTEMD" = "True" ]]; then
|
|
1580
|
|
- systemd_service=$(_define_systemd_service "$name" "$command" "$group" "$user")
|
|
1581
|
|
- fi
|
|
1582
|
1575
|
if is_service_enabled $service; then
|
|
1583
|
1576
|
if [[ "$USE_SYSTEMD" = "True" ]]; then
|
|
1584
|
|
- $SYSTEMCTL enable $systemd_service
|
|
1585
|
|
- $SYSTEMCTL start $systemd_service
|
|
|
1577
|
+ _run_under_systemd "$name" "$command" "$group" "$user"
|
|
1586
|
1578
|
elif [[ "$USE_SCREEN" = "True" ]]; then
|
|
1587
|
1579
|
if [[ "$user" == "root" ]]; then
|
|
1588
|
1580
|
command="sudo $command"
|