Merge pull request #25689 from YHNdnzj/systemctl-exit-code

systemctl: make is-* return EXIT_PROGRAM_OR_SERVICES_STATUS_UNKNOWN(4) when no unit file is found
This commit is contained in:
Zbigniew Jędrzejewski-Szmek
2022-12-14 08:37:16 +01:00
committed by GitHub
5 changed files with 66 additions and 13 deletions
+13
View File
@@ -9,6 +9,9 @@ at_exit() {
fi
}
# shellcheck source=test/units/assert.sh
. "$(dirname "$0")"/assert.sh
trap at_exit EXIT
# Create a simple unit file for testing
@@ -79,6 +82,16 @@ systemctl list-jobs --before
systemctl list-jobs --after --before
systemctl list-jobs "*"
# is-* verbs
# Should return 4 for a missing unit file
assert_rc 4 systemctl --quiet is-active not-found.service
assert_rc 4 systemctl --quiet is-failed not-found.service
assert_rc 4 systemctl --quiet is-enabled not-found.service
# is-active: return 3 when the unit exists but inactive
assert_rc 3 systemctl --quiet is-active "$UNIT_NAME"
# is-enabled: return 1 when the unit exists but disabled
assert_rc 1 systemctl --quiet is-enabled "$UNIT_NAME"
# Basic service management
systemctl start --show-transaction "$UNIT_NAME"
systemctl status -n 5 "$UNIT_NAME"