aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xcheck_systemd25
1 files changed, 25 insertions, 0 deletions
diff --git a/check_systemd b/check_systemd
new file mode 100755
index 0000000..b2b140c
--- /dev/null
+++ b/check_systemd
@@ -0,0 +1,25 @@
+#!/bin/bash
+
+# USAGE:
+# check_systemd [UNIT ...]
+
+FAILED=()
+
+if ! systemctl is-system-running > /dev/null; then
+ echo systemd CRITICAL: System state degraded.
+ exit 2
+fi
+
+for unit in "$@"; do
+ if ! systemctl is-active "$unit" > /dev/null; then
+ FAILED+=("$unit")
+ fi
+done
+
+if [ ${#FAILED[@]} -gt 0 ]; then
+ echo "systemd CRITICAL: failed units: ${FAILED[@]}"
+ exit 2
+fi
+
+echo "systemd OK: $# units checked"
+exit 0