Whamcloud - gitweb
e2scrub: test for the presence of systemd using test -e /run/systemd/system
authorTheodore Ts'o <tytso@mit.edu>
Wed, 1 May 2024 03:54:26 +0000 (23:54 -0400)
committerTheodore Ts'o <tytso@mit.edu>
Wed, 1 May 2024 03:54:26 +0000 (23:54 -0400)
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 <tytso@mit.edu>
scrub/e2scrub_all.in

index fe4dda9..f0593d8 100644 (file)
@@ -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=$?