From e838d8a9475242c6e8e47f1229cabecce0fc3281 Mon Sep 17 00:00:00 2001 From: Matthew Vernon Date: Thu, 29 Sep 2022 15:16:43 +0100 Subject: [PATCH] swift-drive-audit: reload systemd after editing fstab Systemd does not monitor /etc/fstab for changes; so a filesystem unmounted and commented-out in fstab will be re-mounted by systemd after some time. This change means that swift-drive-audit will call systemcl daemon-reload (which causes systemd to reload its configuration including /etc/fstab) after editing /etc/fstab on systems where systemd is the running init. Check for that case by looking for the existence of the directory /run/systemd/system, as documented in sd_booted(3). Signed-off-by: Matthew Vernon Change-Id: I8830e3da9b6b085224511ac351f2d2860119c432 --- bin/swift-drive-audit | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/bin/swift-drive-audit b/bin/swift-drive-audit index b771670423..03662bc255 100755 --- a/bin/swift-drive-audit +++ b/bin/swift-drive-audit @@ -18,6 +18,7 @@ import datetime import glob import locale import os +import os.path import re import subprocess import sys @@ -222,3 +223,6 @@ if __name__ == '__main__': if unmounts == 0: logger.info("No drives were unmounted") + elif os.path.isdir("/run/systemd/system"): + logger.debug("fstab updated, calling systemctl daemon-reload") + subprocess.call(["/usr/bin/systemctl", "daemon-reload"])