From 7480dcacb0b79faf8c7608ce136c37d6cc6e2254 Mon Sep 17 00:00:00 2001 From: Theodore Ts'o Date: Tue, 30 Apr 2024 23:54:26 -0400 Subject: [PATCH] e2scrub: test for the presence of systemd using test -e /run/systemd/system Debian has a package called "systemctl" which provides a systemctl executable to "manage services without systemd". So test for whether we have a fully functional systemd system by checking for the existence of /run/systemd/system instead testing for the presence of the command named systemctl. Addresses-Debian-Bug: #1070107 Signed-off-by: Theodore Ts'o --- scrub/e2scrub_all.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scrub/e2scrub_all.in b/scrub/e2scrub_all.in index fe4dda95..f0593d8c 100644 --- a/scrub/e2scrub_all.in +++ b/scrub/e2scrub_all.in @@ -161,7 +161,7 @@ mapfile -t targets < <(ls_targets) for tgt in "${targets[@]}"; do # If we're not reaping and systemd is present, try invoking the # systemd service. - if [ "${reap}" -ne 1 ] && type systemctl > /dev/null 2>&1; then + if [ "${reap}" -ne 1 ] && [ -e /run/systemd/system ]; then svcname="$(escape_path_for_systemd "${tgt}")" ${DBG} systemctl start "${svcname}" 2> /dev/null res=$?