#!/bin/zsh
setopt extended_glob no_unset
zmodload -F zsh/stat b:zstat
for sv in /run/service/* /run/user/$UID/service/*; do
	svstat=-
	[[ -r $sv/supervise/lock ]] && svstat=$(s6-svstat $sv)
	printf '%s\t%s\n' $sv $svstat
	if [[ $sv == /run/service/container.* && -r /run/containers/${sv##*/container.}/run/service/.s6-svscan/lock ]]; then
		for sv2 in /run/containers/${sv##*/container.}/run/service/*(N); do
			sv_name=${sv2:t}
			svstat=-
			if zstat -L -A lnk +link $sv2 && [[ $lnk[1] == /run/* ]]; then
				sv2=${sv2:h:h:h}${lnk[1]}
			fi
			[[ -r $sv2/supervise/lock ]] && svstat=$(s6-svstat $sv2)
			printf '\t%s\t%s\n' $sv_name $svstat
		done
	fi
done