Files
systemd/test/units/TEST-07-PID1.issue-3166.sh
T
Luca Boccassi 90f4c0473a core: set Result=start-limit-hit when a unit is rate limited
There is currently no way to figure out a rate limit was hit on a unit,
as the last result is stripped in order to keep reporting the first
result, which is useful in case of a watchdog failure, which is the
reason why it was changed as such.

But rate limiting is also an important information to provide to
users, so allow the Result property to reflect it when it
happens.
2025-12-18 00:19:09 +01:00

18 lines
839 B
Bash
Executable File

#!/usr/bin/env bash
# SPDX-License-Identifier: LGPL-2.1-or-later
set -eux
set -o pipefail
# Service doesn't enter the "failed" state
# Issue: https://github.com/systemd/systemd/issues/3166
systemctl --no-block start issue3166-fail-on-restart.service
active_state="$(systemctl show --value --property ActiveState issue3166-fail-on-restart.service)"
while [[ "$active_state" == "activating" || "$active_state" =~ ^(in)?active$ ]]; do
sleep .5
active_state="$(systemctl show --value --property ActiveState issue3166-fail-on-restart.service)"
done
systemctl is-failed issue3166-fail-on-restart.service || exit 1
[[ "$(systemctl show --value --property NRestarts issue3166-fail-on-restart.service)" -le 3 ]] || exit 1
[[ "$(systemctl show --value --property Result issue3166-fail-on-restart.service)" = "start-limit-hit" ]] || exit 1