Make vserver <guest> start --rescue ... work again.
[util-vserver.git] / scripts / vserver.functions
index be6e813..1236629 100644 (file)
@@ -247,7 +247,8 @@ function _generateInitOptions
     CHCONTEXT_INIT_OPTS=()
 
 
-    getFileValue INITSTYLE      "$cfgdir"/style
+    test -n "$INITSTYLE" || \
+      getFileValue INITSTYLE    "$cfgdir"/style
     getFileValue RUNLEVEL_START "$cfgdir"/runlevel
     getFileValue RUNLEVEL_START "$cfgdir"/runlevel.start
     getFileValue RUNLEVEL_STOP  "$cfgdir"/runlevel.stop
@@ -262,7 +263,7 @@ function _generateInitOptions
        (xrescue)
            INITCMD_START=( "${INITCMD_RESCUE[@]}" )
            INITCMD_STOP=( /sbin/killall5 )
-           _IS_FAKEINIT=1
+           _IS_FAKEINIT=
            _NEED_VSHELPER_SYNC=
            ;;
            
@@ -299,8 +300,11 @@ function _generateInitOptions
            ;;
 
        (xgentoo)
-           INITCMD_START=( /lib/rcscripts/sh/init-vserver.sh )
+           test -n "$RUNLEVEL_START" || RUNLEVEL_START="default"
+
+           INITCMD_START=( /lib/rcscripts/sh/init-vserver.sh "$RUNLEVEL_START" )
            INITCMD_STOP=( /sbin/rc shutdown )
+           INITCMD_PREPARE=( $_FAKE_RUNLEVEL 3 /var/run/utmp )
 
            pushd "$vdir"/vdir &>/dev/null
            basever=$($_CHROOT_SH cat /etc/gentoo-release | $_AWK '{print $5}')
@@ -407,6 +411,11 @@ function _generateChcontextOptions
 function _generateScheduleOptions
 {
     local vdir=$1
+    if test -d "$vdir"/sched; then
+      OPTS_VSCHED=( --dir "$vdir"/sched --missingok )
+      return 0
+    fi
+
     local f="$vdir"/schedule
     test -e "$f" || return 0