aboutsummaryrefslogtreecommitdiff
path: root/modules/pkgs/check_systemd/check_systemd
blob: e668331e801ddab3165162f1857e3914a564f55b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#!/usr/bin/env bash

set -euo pipefail

readarray -t failed < <( systemctl show '*.service' \
    --state=failed --property=Names \
    | sed -r -n 's,Names=(.+)\.service,\1,p' \
    | sort
  )

if [ ${#failed[@]} -ne 0 ]; then
  printf -v list ', %s' "${failed[@]}"
  printf 'WARNING: %s failed\n' "${list:2}"
  exit 1
else
  echo "OK: no failed services"
  exit 0
fi