#!/bin/sh # # Script to stop the nominated overlay subhost OVERLAYDIR="$(dirname $(realpath $0))" [ $(id -u) = 0 ] || exec sudo $0 $@ . $OVERLAYDIR/functions $* CONFIG="$1" [ -r "$CONFIG" ] || die "Missing configuration $CONFIG" config NAME $(basename $1 .${1##*.}) config START "ssh networking" config LIVE read USPID RSPID <&2 && exit 1 if [ -z "$RSPID" ] ; then cat <&2 *** $NAME is started (pid $USPID) but doesn't seem to be running *** /.reaper and might need manual fixing. EOF exit 1 fi # function to reverse the $* words reverse() { local OUT="" for w in $* ; do OUT="$w $OUT" ; done echo "${OUT% }" } START="$(reverse "$START")" if nsenter -t $RSPID -p -m -i -u ip netns exec $NAME chroot $LIVE /bin/sh \ -c "for srv in $START ; do service \$srv stop ; done" ; then CHILDPIDS="$(nsenter -t $RSPID -p -m ps -hopid --ppid 1)" nsenter -t $RSPID -p -m kill $CHILDPIDS fi