[PATCH 4/4] mdcheck: log to stderr from systemd units

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



If the script is run from systemd, simply writing to stderr will
create more concise output. Otherwise, use logger like before.

Use the same logic for other messages printed by the script during
runtime, except for error messages related to the invocation.

Signed-off-by: Martin Wilck <mwilck@xxxxxxxx>
---
 misc/mdcheck | 20 +++++++++++++++-----
 1 file changed, 15 insertions(+), 5 deletions(-)

diff --git a/misc/mdcheck b/misc/mdcheck
index df4fd3b..85d79a3 100644
--- a/misc/mdcheck
+++ b/misc/mdcheck
@@ -37,6 +37,16 @@
 # Use "mdcheck --restart" to remove these markers and re-enable checking
 # all arrays.
 
+# If the script is run from systemd, simply write to the journal on stderr.
+# Otherwise, use logger.
+log() {
+    if [[ "$INVOCATION_ID" ]]; then
+	    echo "$@" >&2
+    else
+	    logger -p daemon.info "$@"
+    fi
+}
+
 # get device name from sysfs
 devname() {
     local dev
@@ -82,7 +92,7 @@ if [ "$cont" = yes ]; then
 		exit 1
 	fi
 elif [ "$restart" = yes ]; then
-	echo 'Re-enabling array checks for all arrays' >&2
+	log 'Re-enabling array checks for all arrays'
 	rm -f /var/lib/mdcheck/Checked_*
 	exit $?
 fi
@@ -110,7 +120,7 @@ cleanup() {
 	fi
 	echo idle > $sys/md/sync_action
 	cat $sys/md/sync_min > $fl
-	logger -p daemon.info pause checking $dev at `cat $fl`
+	log pause checking $dev at `cat $fl`
     done
     rm -f "$tmp"
 }
@@ -141,7 +151,7 @@ do
 	checked="${fl/MD_UUID_/Checked_}"
 	if [[ -f "$fl" ]]; then
 		[[ ! -f "$checked" ]] || {
-		    echo "WARNING: $checked exists, continuing anyway" >&2
+		    log "WARNING: $checked exists, continuing anyway"
 		}
 		start=`cat "$fl"`
 	elif [[ ! -f "$checked" && -z "$cont" ]]; then
@@ -157,7 +167,7 @@ do
 	echo $start > $fl
 	echo $start > $sys/md/sync_min
 	echo check > $sys/md/sync_action
-	logger -p daemon.info mdcheck checking $dev from $start
+	log mdcheck checking $dev from $start
 done
 
 if [ -z "$endtime" ]
@@ -178,7 +188,7 @@ do
 
 		if [ "`cat $sys/md/sync_action`" != 'check' ]
 		then
-			logger -p daemon.info mdcheck finished checking $dev
+			log mdcheck finished checking $dev
 			eval MD_${i}_fl=
 			rm -f "$fl"
 			touch "${fl/MD_UUID_/Checked_}"
-- 
2.51.0





[Index of Archives]     [Linux RAID Wiki]     [ATA RAID]     [Linux SCSI Target Infrastructure]     [Linux Block]     [Linux IDE]     [Linux SCSI]     [Linux Hams]     [Device Mapper]     [Device Mapper Cryptographics]     [Kernel]     [Linux Admin]     [Linux Net]     [GFS]     [RPM]     [git]     [Yosemite Forum]


  Powered by Linux