From cdc8b265bff5ee1ebd496aa1d6211e4ba120f766 Mon Sep 17 00:00:00 2001 From: Karel Zak Date: Wed, 7 May 2025 10:47:13 +0200 Subject: [PATCH] mount: check for stdout for fstab reload hint Fixes: https://github.com/util-linux/util-linux/issues/3558 Signed-off-by: Karel Zak --- sys-utils/mount.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/sys-utils/mount.c b/sys-utils/mount.c index 8d0e9ab1786..86800a12702 100644 --- a/sys-utils/mount.c +++ b/sys-utils/mount.c @@ -334,6 +334,16 @@ static void selinux_warning(struct libmnt_context *cxt, const char *tgt) #ifdef USE_SYSTEMD +/* +* Note that this mount(8) message may generate thousands of lines of output +* when mount(8) is called from any script in systems with large fstab, etc. +* +* The goal is to avoid spamming system logs (don't print on stderr) and hide +* the hint if stderr is redirected/piped (in this case mount(8) is probably +* executed in a script). +* +* The target audience is users on a terminal who directly use mount(8). +*/ static void systemd_hint(void) { static int fstab_check_done = 0; @@ -342,6 +352,7 @@ static void systemd_hint(void) struct stat a, b; if (isatty(STDERR_FILENO) && + isatty(STDOUT_FILENO) && stat(_PATH_SD_UNITSLOAD, &a) == 0 && stat(_PATH_MNTTAB, &b) == 0 && cmp_stat_mtime(&a, &b, <))