Add initial environment support. Lets users work around their broken
authorDaniel Hokka Zakrisson <daniel@hozac.com>
Tue, 12 Sep 2006 18:35:57 +0000 (18:35 +0000)
committerDaniel Hokka Zakrisson <daniel@hozac.com>
Tue, 12 Sep 2006 18:35:57 +0000 (18:35 +0000)
initscripts inside guests when using the sysv initstyle.

git-svn-id: http://svn.linux-vserver.org/svn/util-vserver/trunk@2310 94cd875c-1c1d-0410-91d2-eb244daf1a30

contrib/manifest.dat.pathsubst
distrib/Makefile.am
distrib/misc/environment [new file with mode: 0644]
doc/configuration.xml
scripts/vserver.functions
scripts/vserver.start

index 8ae2eff..5cfd417 100644 (file)
@@ -37,6 +37,7 @@ legacy @LEGACYDIR@/vreboot
 core   @PKGLIBDIR@/FEATURES.txt
 base   @PKGLIBDIR@/defaults/mtab
 base   @PKGLIBDIR@/defaults/vprocunhide-files
+base   @PKGLIBDIR@/defaults/environment
 build  @PKGLIBDIR@/defaults/fstab
 build  @PKGLIBDIR@/defaults/debootstrap.uri
 @ENSC_HAVE_C99_COMPILER_TRUE@build  @PKGLIBDIR@/defaults/vunify-exclude
index ed6755a..4d1dc26 100644 (file)
@@ -25,7 +25,8 @@ defaults_DATA =               misc/debootstrap.uri \
                        misc/fstab \
                        misc/mtab \
                        misc/vprocunhide-files \
-                       misc/vunify-exclude
+                       misc/vunify-exclude \
+                       misc/environment
 
 nobase_distrib_SCRIPTS =  redhat/initpost \
                           redhat/initpre \
diff --git a/distrib/misc/environment b/distrib/misc/environment
new file mode 100644 (file)
index 0000000..a0d39c8
--- /dev/null
@@ -0,0 +1 @@
+PATH=/bin:/usr/bin:/sbin:/usr/sbin
index 9cd95f5..35d34aa 100644 (file)
@@ -140,6 +140,13 @@ A symlink to the TTY device where input/output will be redirected from/to
 at startup via initscript.
           </description>
        </link>
+
+       <list id="global-environment" name="environment">
+         <description>
+The environment to set when starting guests. Contains one VAR=VAL
+pair per line.
+         </description>
+       </list>
       </collection>
       
       <collection name="vunify">
@@ -622,6 +629,13 @@ will be stopped before its dependencies. Content of this file are
 vserver ids (one name per line).
           </description>
        </list>
+
+       <list name="environment">
+         <description>
+The environment to set when starting the guest. Contains one VAR=VAL
+pair per line.
+         </description>
+       </list>
       </collection>
       
       <collection name="vshelper">
index dfddc6b..d57a783 100644 (file)
@@ -42,6 +42,7 @@ declare -a OPTS_VCONTEXT_MIGRATE=()
 declare -a OPTS_VCONTEXT_ENTER=()
 declare -a OPTS_VATTRIBUTE=( --flag fakeinit )
 declare -a OPTS_VSCHED=()
+declare -a OPTS_ENV=()
 
 declare -a STOPCMD_PREPARE=()
 
@@ -252,6 +253,11 @@ function _generateInitOptions
     getFileValue RUNLEVEL_STOP  "$cfgdir"/runlevel.stop
     getFileArray INITKILL_SEQ  "$cfgdir"/killseq || :
 
+    findFile _gio_env          "$cfgdir"/environment \
+       "$__CONFDIR"/.defaults/apps/init/environment \
+       "$__PKGLIBDEFAULTDIR"/environment
+    getFileArray OPTS_ENV      "$_gio_env" || :
+
     case x"$INITSTYLE" in
        (xrescue)
            INITCMD_START=( "${INITCMD_RESCUE[@]}" )
index 4230614..ba21337 100644 (file)
@@ -140,7 +140,7 @@ if $_VSERVER_INFO - FEATURE migrate; then
     $_VUNAME     --xid self --set -t context="$VSERVER_DIR" -- \
     $_VATTRIBUTE --set "${OPTS_VATTRIBUTE[@]}" -- \
     $_SAVE_CTXINFO "$VSERVER_DIR" \
-    $_ENV -i -- \
+    $_ENV -i "${OPTS_ENV[@]}" -- \
     $_VCONTEXT   --migrate-self --endsetup --chroot $SILENT_OPT \
     "${OPTS_VCONTEXT_MIGRATE[@]}" "${OPTS_VCONTEXT_ENTER[@]}" -- \
     "${INITCMD_START[@]}"
@@ -156,7 +156,7 @@ else
     $_EXEC_ULIMIT      "$VSERVER_DIR/ulimits" \
     $_CHCONTEXT_COMPAT "${CHCONTEXT_OPTS[@]}" "${CHCONTEXT_INIT_OPTS[@]}" \
     $_SAVE_CTXINFO     "$VSERVER_DIR" \
-    $_ENV -i -- \
+    $_ENV -i "${OPTS_ENV[@]}" -- \
     $_CHAINECHO "${_IS_FAKEINIT:+$startsync_pipe}" "" \
     $_CAPCHROOT        "${CAPCHROOT_OPTS[@]}" . \
     "${INITCMD_START[@]}"