+++ /dev/null
-#!/bin/bash
-
-cd ~/.config/systemd/user/ &> /dev/null || exit 0
-
-error=0
-for timer in *.timer; do
- if ! systemctl --user is-enabled "$timer" > /dev/null; then
- echo "disabled timer $timer"
- error=1
- fi
- if ! systemctl --user is-active "$timer" > /dev/null; then
- echo "inactive timer $timer"
- error=1
- fi
-done
-
-exit "$error"
#!/bin/bash
-if systemctl --user is-system-running > /dev/null; then
- exit 0
-fi
+users="$(systemctl list-units | \
+ sed -nE 's/.*user@([0-9]+)\.service .*loaded active running.*/\1/p' | \
+ xargs -n1 id -un)"
-echo -e "# systemctl --user --failed"
-systemctl --user --failed
-exit 1
+error=0
+for user in $users; do
+ homedir="$(getent passwd "$user"|cut -d: -f6)"
+ for timer in "$homedir"/.config/systemd/user/*.timer; do
+ if ! [ -f "$timer" ]; then
+ continue
+ fi
+ timerunit="$(basename "$timer")"
+ if ! systemctl --user -M"$user@" is-enabled "$timerunit" > /dev/null; then
+ echo "disabled timer $timer"
+ error=1
+ fi
+ if ! systemctl --user -M"$user@" is-active "$timerunit" > /dev/null; then
+ echo "inactive timer $timer"
+ error=1
+ fi
+ done
+
+ if systemctl --user -M "$user@" is-system-running > /dev/null; then
+ continue
+ fi
+
+ echo -e "# systemctl --user -M "$user@" --failed"
+ systemctl --user -M "$user@" --failed
+ error=1
+done
+
+exit "$error"