From: Enrico Scholz Date: Sat, 29 Oct 2005 09:04:34 +0000 (+0000) Subject: start the vserver with the '--rescue' option and execute operations X-Git-Tag: version_0_30_210~77 X-Git-Url: http://git.linux-vserver.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=842a918cb9bcdd3b1c79dd980d2f9638b0cd6742;p=util-vserver.git start the vserver with the '--rescue' option and execute operations like 'chkconfig' there git-svn-id: http://svn.linux-vserver.org/svn/util-vserver/trunk@2204 94cd875c-1c1d-0410-91d2-eb244daf1a30 --- diff --git a/util-vserver/distrib/redhat/initpost b/util-vserver/distrib/redhat/initpost index f281656..093c592 100755 --- a/util-vserver/distrib/redhat/initpost +++ b/util-vserver/distrib/redhat/initpost @@ -40,6 +40,24 @@ function subst rm -f $tmp } +vserver=$1 + +## Do some magic to set the vserver into a defined state +$_VSERVER "$vserver" stop &>/dev/null || : +$_VSERVER "$vserver" start --rescue bash -c ' + exec >/dev/null + exec 2>/dev/null + + set -x + f=/tmp/startwait + trap "rm -f $f" EXIT + mkfifo $f + ( sleep 10; kill -s 9 -- -1 ) & + cat "$f" >/dev/null + kill -s 9 -- -1 + wait +' + pushd "$vdir"/etc/init.d &>/dev/null || pushd "$vdir"/etc/rc.d/init.d &>/dev/null || exit 1 @@ -49,7 +67,7 @@ pushd "$vdir"/etc/init.d &>/dev/null || functions|halt|killall|single) ;; syslog) ;; *) - $_VSERVER ----insecure "$1" chkconfig "$i" off + $_VSERVER "$1" chkconfig "$i" off ;; esac done @@ -78,3 +96,6 @@ pushd "$vdir" &>/dev/null subst etc/inittab 's!^\([^#].*:respawn:.* tty\)!#\1!; s!si::sysinit:/etc/rc.d/rc.sysinit!si::sysinit:/etc/rc.d/rc.sysinit.vserver!' popd >/dev/null + +$_VSERVER "$vserver" exec bash -c ': >/tmp/startwait' &>/dev/null || : +$_VSERVER "$vserver" stop &>/dev/null || :