From b4e749f155c8bffea2cdb4066763cbd62abe56ef Mon Sep 17 00:00:00 2001 From: Daniel Hokka Zakrisson Date: Tue, 12 Sep 2006 18:35:57 +0000 Subject: [PATCH] Add initial environment support. Lets users work around their broken 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 | 1 + distrib/Makefile.am | 3 ++- distrib/misc/environment | 1 + doc/configuration.xml | 14 ++++++++++++++ scripts/vserver.functions | 6 ++++++ scripts/vserver.start | 4 ++-- 6 files changed, 26 insertions(+), 3 deletions(-) create mode 100644 distrib/misc/environment diff --git a/contrib/manifest.dat.pathsubst b/contrib/manifest.dat.pathsubst index 8ae2eff..5cfd417 100644 --- a/contrib/manifest.dat.pathsubst +++ b/contrib/manifest.dat.pathsubst @@ -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 diff --git a/distrib/Makefile.am b/distrib/Makefile.am index ed6755a..4d1dc26 100644 --- a/distrib/Makefile.am +++ b/distrib/Makefile.am @@ -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 index 0000000..a0d39c8 --- /dev/null +++ b/distrib/misc/environment @@ -0,0 +1 @@ +PATH=/bin:/usr/bin:/sbin:/usr/sbin diff --git a/doc/configuration.xml b/doc/configuration.xml index 9cd95f5..35d34aa 100644 --- a/doc/configuration.xml +++ b/doc/configuration.xml @@ -140,6 +140,13 @@ A symlink to the TTY device where input/output will be redirected from/to at startup via initscript. + + + +The environment to set when starting guests. Contains one VAR=VAL +pair per line. + + @@ -622,6 +629,13 @@ will be stopped before its dependencies. Content of this file are vserver ids (one name per line). + + + +The environment to set when starting the guest. Contains one VAR=VAL +pair per line. + + diff --git a/scripts/vserver.functions b/scripts/vserver.functions index dfddc6b..d57a783 100644 --- a/scripts/vserver.functions +++ b/scripts/vserver.functions @@ -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[@]}" ) diff --git a/scripts/vserver.start b/scripts/vserver.start index 4230614..ba21337 100644 --- a/scripts/vserver.start +++ b/scripts/vserver.start @@ -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[@]}" -- 1.8.1.5