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 <mvernon@wikimedia.org>
Change-Id: I8830e3da9b6b085224511ac351f2d2860119c432
This commit is contained in:
Matthew Vernon 2022-09-29 15:16:43 +01:00
parent 99b0b3d1ec
commit e838d8a947

View File

@ -18,6 +18,7 @@ import datetime
import glob import glob
import locale import locale
import os import os
import os.path
import re import re
import subprocess import subprocess
import sys import sys
@ -222,3 +223,6 @@ if __name__ == '__main__':
if unmounts == 0: if unmounts == 0:
logger.info("No drives were unmounted") 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"])