#!/usr/bin/env bash # Some examples on how to list and iterate over systemd units (e.g. services or timers). # With an additional example on how to check if one of multiple services is running. function all_timers(){ # Newline separated list of systemd timers. timers="$(systemctl list-units --type=timer --plain --quiet | awk '{ print $1 }')" # For $timer in $timers. while IFS= read -r timer; do echo "Timer: ${timer}" done <<< "${timers}" } function btrfs_scrub_timers(){ # Newline separated list of systemd timers which start with `btrfs-scrub`. timers="$(systemctl list-units --type=timer --plain --quiet | awk '{ print $1 }' | grep '^btrfs-scrub')" # For $timer in $timers. while IFS= read -r timer; do echo "Timer: ${timer}" done <<< "${timers}" } function running_btrfs_scrub(){ systemctl list-units --type=service --plain --quiet | awk '{ print $1 }' | grep '^btrfs-scrub' } running_btrfs_scrub