liminix/pkgs/s6-rc-up-tree/s6-rc-up-tree.sh

25 lines
514 B
Bash

service=$1
blocks=""
for controlled in $(cd /run/services/controlled/ && echo *); do
down=$(s6-rc -b -un0 change $controlled)
echo $controlled $down
if test -n "$down"; then
blocks="$blocks $controlled "
fi
done
for s in $(s6-rc-db -d all-dependencies $service); do
for dep in $(s6-rc-db all-dependencies $s); do
case "$blocks" in
"* $dep *")
echo "not starting $s, blocked by $dep"
;;
*)
echo "starting $s because $service"
s6-rc -b -u change $s
;;
esac
done
done