mirror of
https://github.com/systemd/systemd-stable.git
synced 2025-03-21 14:50:12 +03:00
Brief is sweet. (cherry picked from commit 128db0aa0098b58b415065c2955f9abc7fc967e1) (cherry picked from commit f3abd451dde25086e06c56ba0b8388f64c1d306e) (cherry picked from commit 3626aabecb8a8682caa466de711e8f6509f954ec)
65 lines
1.5 KiB
Bash
Executable File
65 lines
1.5 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# SPDX-License-Identifier: LGPL-2.1-or-later
|
|
set -eux
|
|
set -o pipefail
|
|
|
|
systemd-analyze log-level debug
|
|
systemd-analyze log-target console
|
|
|
|
export SYSTEMD_PAGER=
|
|
SERVICE_PATH="$(mktemp /etc/systemd/system/execreloadXXX.service)"
|
|
SERVICE_NAME="${SERVICE_PATH##*/}"
|
|
|
|
echo "[#1] Failing ExecReload= should not kill the service"
|
|
cat >"$SERVICE_PATH" <<EOF
|
|
[Service]
|
|
ExecStart=/bin/sleep infinity
|
|
ExecReload=/bin/false
|
|
EOF
|
|
|
|
systemctl daemon-reload
|
|
systemctl start "$SERVICE_NAME"
|
|
systemctl status "$SERVICE_NAME"
|
|
# The reload SHOULD fail but SHOULD NOT affect the service state
|
|
(! systemctl reload "$SERVICE_NAME")
|
|
systemctl status "$SERVICE_NAME"
|
|
systemctl stop "$SERVICE_NAME"
|
|
|
|
|
|
echo "[#2] Failing ExecReload= should not kill the service (multiple ExecReload=)"
|
|
cat >"$SERVICE_PATH" <<EOF
|
|
[Service]
|
|
ExecStart=/bin/sleep infinity
|
|
ExecReload=/bin/true
|
|
ExecReload=/bin/false
|
|
ExecReload=/bin/true
|
|
EOF
|
|
|
|
systemctl daemon-reload
|
|
systemctl start "$SERVICE_NAME"
|
|
systemctl status "$SERVICE_NAME"
|
|
# The reload SHOULD fail but SHOULD NOT affect the service state
|
|
(! systemctl reload "$SERVICE_NAME")
|
|
systemctl status "$SERVICE_NAME"
|
|
systemctl stop "$SERVICE_NAME"
|
|
|
|
echo "[#3] Failing ExecReload=- should not affect reload's exit code"
|
|
cat >"$SERVICE_PATH" <<EOF
|
|
[Service]
|
|
ExecStart=/bin/sleep infinity
|
|
ExecReload=-/bin/false
|
|
EOF
|
|
|
|
systemctl daemon-reload
|
|
systemctl start "$SERVICE_NAME"
|
|
systemctl status "$SERVICE_NAME"
|
|
systemctl reload "$SERVICE_NAME"
|
|
systemctl status "$SERVICE_NAME"
|
|
systemctl stop "$SERVICE_NAME"
|
|
|
|
systemd-analyze log-level info
|
|
|
|
echo OK >/testok
|
|
|
|
exit 0
|