X-Git-Url: http://git.linux-vserver.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=distrib%2Fredhat%2Finitpost;h=569d8c452f5c5c86ffe0230e925c1072f9c33d43;hb=09e68ea5be59e9f3824761e9f5ce602b058c458f;hp=4157a2b5194c74bb8878365ebb99affab92706bf;hpb=91f04ebcefcd873f9dc58014157991dd8534986b;p=util-vserver.git diff --git a/distrib/redhat/initpost b/distrib/redhat/initpost index 4157a2b..569d8c4 100755 --- a/distrib/redhat/initpost +++ b/distrib/redhat/initpost @@ -19,6 +19,7 @@ vdir=$1/vdir . "$2" +. "$_LIB_VSERVER_BUILD_FUNCTIONS" function relink { @@ -44,19 +45,7 @@ vserver=$1 ## Do some magic to set the vserver into a defined state $_VSERVER "$vserver" stop &>/dev/null || : -$_VSERVER "$vserver" start --rescue --rescue-init bash -c ' - exec >/dev/null - exec 2>/dev/null - - set -x - f=/tmp/startwait - trap "rm -f $f" EXIT - mkfifo $f - ( sleep 15; kill -s 9 -- -1 ) & - cat "$f" >/dev/null - kill -s 9 -- -1 - wait -' +startSleepingGuest "$vserver" 15 pushd "$vdir"/etc/init.d &>/dev/null || pushd "$vdir"/etc/rc.d/init.d &>/dev/null || exit 1 @@ -64,8 +53,10 @@ pushd "$vdir"/etc/init.d &>/dev/null || for i in *; do test -e "$i" || continue case "$i" in - functions|halt|killall|single) ;; - syslog) ;; + functions|halt|killall|single|reboot) ;; + syslog|rsyslog) + $_VSERVER "$1" chkconfig "$i" on + ;; *) $_VSERVER "$1" chkconfig "$i" off ;; @@ -100,7 +91,23 @@ EOF $_CHROOT_SH chmod 0755 /etc/rc.d/rc.sysinit.vserver subst etc/inittab 's!^\([^#].*:respawn:.* tty\)!#\1!; s!si::sysinit:/etc/rc.d/rc.sysinit!si::sysinit:/etc/rc.d/rc.sysinit.vserver!' + + if $_CHROOT_SH testfile /sbin/initctl; then + cat "$__DISTRIBDIR"/redhat/initctl | $_CHROOT_SH truncate /sbin/initctl.vserver + $_CHROOT_SH chmod 0755 /sbin/initctl.vserver + subst etc/rc.d/rc 's!^\(.*\)/proc/cmdline\(.*\)$!\1/proc/cmdline 2>/dev/null \2!;s!initctl!initctl.vserver!' + if test -d etc/event.d; then + subst etc/event.d/rcS 's!/etc/rc.d/rc.sysinit!/etc/rc.d/rc.sysinit.vserver!' + $_CHROOT_SH rm /etc/event.d/tty{1,2,3,4,5,6} + elif test -d etc/init; then + for i in etc/init/*; do + subst $i 's!^console output!#\0!' + done + subst etc/init/control-alt-delete.conf 's!/sbin/shutdown -r!/sbin/shutdown -h!' + subst etc/init/rcS.conf 's!/etc/rc.d/rc.sysinit!/etc/rc.d/rc.sysinit.vserver!;s!cat /proc/cmdline!cat /proc/cmdline 2>/dev/null!' + subst etc/init/start-ttys.conf 's!^start on !\0never and !' + fi + fi popd >/dev/null -$_VSERVER "$vserver" exec bash -c ': >/tmp/startwait' &>/dev/null || : -$_VSERVER "$vserver" stop &>/dev/null || : +stopSleepingGuest "$vserver" &> /dev/null || :