From b540342aa139af3850c2c645687e17631440fe71 Mon Sep 17 00:00:00 2001 From: Enrico Scholz Date: Tue, 9 Mar 2004 03:58:14 +0000 Subject: [PATCH] added explicit cleanup trap removed superfluous '--' git-svn-id: http://svn.linux-vserver.org/svn/util-vserver/trunk@1180 94cd875c-1c1d-0410-91d2-eb244daf1a30 --- util-vserver/scripts/vserver.start | 34 ++++++++++++++++++++++++---------- 1 file changed, 24 insertions(+), 10 deletions(-) diff --git a/util-vserver/scripts/vserver.start b/util-vserver/scripts/vserver.start index 2d16ac3..199596c 100644 --- a/util-vserver/scripts/vserver.start +++ b/util-vserver/scripts/vserver.start @@ -20,12 +20,25 @@ if isVserverRunning "$VSERVER_DIR"; then exit 1 fi +function cleanup() +{ + test -z "$is_started" || return 0 + test -z "$is_mounted" || umountVserver "$VSERVER_DIR" &>/dev/null || : + test -z "$have_interfaces" || disableInterfaces "$VSERVER_DIR" &>/dev/null || : +} + +is_started= +is_mounted= +have_interfaces= + +trap "cleanup" EXIT + set -e generateOptions "$VSERVER_DIR" execScriptlets "$VSERVER_DIR" "$VSERVER_NAME" prepre-start -enableInterfaces "$VSERVER_DIR" +enableInterfaces "$VSERVER_DIR" && have_interfaces=1 -mountVserver "$VSERVER_DIR" +mountVserver "$VSERVER_DIR" && is_mounted=1 prepareInit "$VSERVER_DIR" cd "$VSERVER_DIR"/vdir/ @@ -43,16 +56,17 @@ if $_VSERVER_INFO - FEATURE migrate; then $_VCONTEXT --migrate-self --chroot $SILENT_OPT "${OPTS_VCONTEXT_MIGRATE[@]}" \ -- "${INITCMD_START[@]}" else - "${NICE_CMD[@]}" \ - "$_CHBIND" "${CHBIND_OPTS[@]}" \ - "$_EXEC_ULIMIT" "$VSERVER_DIR/ulimits" \ - "$_CHCONTEXT" "${CHCONTEXT_OPTS[@]}" "${CHCONTEXT_INIT_OPTS[@]}" \ - "$_SAVE_CTXINFO" "$VSERVER_DIR" \ - "$_CLEARENV" \ - "$_CAPCHROOT" "${CAPCHROOT_OPTS[@]}" . \ - -- "${INITCMD_START[@]}" + ${NICE_CMD[@]} \ + $_CHBIND "${CHBIND_OPTS[@]}" \ + $_EXEC_ULIMIT "$VSERVER_DIR/ulimits" \ + $_CHCONTEXT_COMPAT "${CHCONTEXT_OPTS[@]}" "${CHCONTEXT_INIT_OPTS[@]}" \ + $_SAVE_CTXINFO "$VSERVER_DIR" \ + $_CLEARENV \ + $_CAPCHROOT "${CAPCHROOT_OPTS[@]}" . \ + ${INITCMD_START[@]} fi "${INITCMD_START_SYNC[@]}" execScriptlets "$VSERVER_DIR" "$VSERVER_NAME" post-start +is_started=1 -- 1.8.1.5