mirror of
https://github.com/systemd/systemd-stable.git
synced 2025-01-20 14:03:39 +03:00
3776e1f2ee
Brief is sweet. (cherry picked from commit 128db0aa0098b58b415065c2955f9abc7fc967e1) (cherry picked from commit f3abd451dde25086e06c56ba0b8388f64c1d306e) (cherry picked from commit 3626aabecb8a8682caa466de711e8f6509f954ec)
56 lines
1.4 KiB
Bash
Executable File
56 lines
1.4 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# SPDX-License-Identifier: LGPL-2.1-or-later
|
|
set -eux
|
|
set -o pipefail
|
|
|
|
# wait this many secs for each test service to succeed in what is being tested
|
|
MAX_SECS=60
|
|
|
|
systemd-analyze log-level debug
|
|
systemd-analyze log-target console
|
|
|
|
# test one: Restart=on-failure should restart the service
|
|
(! systemd-run --unit=one -p Type=oneshot -p Restart=on-failure /bin/bash -c "exit 1")
|
|
|
|
for ((secs = 0; secs < MAX_SECS; secs++)); do
|
|
[[ "$(systemctl show one.service -P NRestarts)" -le 0 ]] || break
|
|
sleep 1
|
|
done
|
|
if [[ "$(systemctl show one.service -P NRestarts)" -le 0 ]]; then
|
|
exit 1
|
|
fi
|
|
|
|
TMP_FILE="/tmp/test-41-oneshot-restart-test"
|
|
|
|
: >$TMP_FILE
|
|
|
|
# test two: make sure StartLimitBurst correctly limits the number of restarts
|
|
# and restarts execution of the unit from the first ExecStart=
|
|
(! systemd-run --unit=two \
|
|
-p StartLimitIntervalSec=120 \
|
|
-p StartLimitBurst=3 \
|
|
-p Type=oneshot \
|
|
-p Restart=on-failure \
|
|
-p ExecStart="/bin/bash -c \"printf a >> $TMP_FILE\"" /bin/bash -c "exit 1")
|
|
|
|
# wait for at least 3 restarts
|
|
for ((secs = 0; secs < MAX_SECS; secs++)); do
|
|
[[ $(cat $TMP_FILE) != "aaa" ]] || break
|
|
sleep 1
|
|
done
|
|
if [[ $(cat $TMP_FILE) != "aaa" ]]; then
|
|
exit 1
|
|
fi
|
|
|
|
# wait for 5 more seconds to make sure there aren't excess restarts
|
|
sleep 5
|
|
if [[ $(cat $TMP_FILE) != "aaa" ]]; then
|
|
exit 1
|
|
fi
|
|
|
|
systemd-analyze log-level info
|
|
|
|
echo OK >/testok
|
|
|
|
exit 0
|