X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=scripts%2Fvserver.start;fp=scripts%2Fvserver.start;h=0000000000000000000000000000000000000000;hb=db5ef3f969fc6ad34aeb5903e44d0049b2e50791;hp=92c20437987ea5848eb06fc5982d1fa2e6f8e7f0;hpb=95e2774070e989fe9cf9f48dae5fa054e55e2a3e;p=util-vserver.git diff --git a/scripts/vserver.start b/scripts/vserver.start deleted file mode 100644 index 92c2043..0000000 --- a/scripts/vserver.start +++ /dev/null @@ -1,185 +0,0 @@ -# $Id: vserver.start 2599 2007-08-26 21:30:50Z dhozac $ --*- sh -*-- - -# Copyright (C) 2003 Enrico Scholz -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; version 2 of the License. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - - -lock "$__LOCKDIR"/vserver."$($_VSERVER_INFO "$VSERVER_DIR" CANONIFY)".startup - -if isVserverRunning "$VSERVER_DIR"; then - warning $"vserver '$VSERVER_NAME' already running" - exit 0 -fi - -function cleanup() -{ - set +e - - test -z "$startsync_pipe" || $_RM -f "$startsync_pipe" - test -z "$is_started" || { unlock; return 0; } - - if test -n "$is_configured" -a -z "$is_executed"; then - warning $" -An error occured while executing the vserver startup sequence; when -there are no other messages, it is very likely that the init-script -(${INITCMD_START[@]}) failed. - -Common causes are: -* /etc/rc.d/rc on Fedora Core 1 and RH9 fails always; the 'apt-rpm' build - method knows how to deal with this, but on existing installations, - appending 'true' to this file will help." - fi - - if test -n "$is_executed"; then - warning $" -An error occured after executing the vserver startup sequence. This -means that some processes may exist in the created context and the -manual execution of - - $_VSERVER '$VSERVER_DIR' stop - -is recommended to fix this." - else - warning $" - -Failed to start vserver '$VSERVER_NAME'" - fi - - test -n "$OPTION_DEBUG" || exec 2>/dev/null >/dev/null - test -z "$is_mounted" || umountVserver "$VSERVER_DIR" || : - test -z "$have_interfaces" || disableInterfaces "$VSERVER_DIR" || : - - unlock || : -} - -is_configured= -is_executed= -is_started= -is_mounted= -is_vshelper_init= -have_interfaces= -startsync_pipe= -have_initcmd= - -while test "$#" -gt 0; do - case "$1" in - (--rescue) INITSTYLE=rescue;; - (--rescue-cmd) - warning $"\ -The '--rescue-cmd' option is deprecated; just add the the initcmd -inclusive its arguments to the cmdline." - INITCMD_RESCUE=( $2 ); - have_initcmd=1 - shift;; - (--rescue-init) _IS_FAKEINIT=1;; - (--) shift; break;; - (-*) panic $"vserver ... start: unknown option '$1'";; - (*) break; - esac - shift -done - -if test x"$INITSTYLE" = xrescue -a -z "$have_initcmd" -a "$#" -gt 0; then - INITCMD_RESCUE=( "$@" ) -fi - - -set -e -trap "cleanup" EXIT - -sanityCheck "$VSERVER_DIR" - -pushd "$VSERVER_DIR" >/dev/null -execScriptlets "$VSERVER_DIR" "$VSERVER_NAME" initialize -popd >/dev/null - -mountRootFS "$VSERVER_DIR" -generateOptions "$VSERVER_DIR" - -pushd "$VSERVER_DIR" >/dev/null -execScriptlets "$VSERVER_DIR" "$VSERVER_NAME" prepre-start -popd >/dev/null - -setDiskLimits "$VSERVER_DIR" - -enableInterfaces "$VSERVER_DIR" && have_interfaces=1 - -mountVserver "$VSERVER_DIR" && is_mounted=1 -prepareInit "$VSERVER_DIR" -addtoCPUSET "$VSERVER_DIR" - -pushd "$VSERVER_DIR"/vdir/ >/dev/null -execScriptlets "$VSERVER_DIR" "$VSERVER_NAME" pre-start -popd >/dev/null - -test -z "$OPTION_DEFAULTTTY" || setDefaultTTY "$VSERVER_DIR" - -pushd "$VSERVER_DIR"/vdir/ >/dev/null -is_configured=1 -if $_VSERVER_INFO - FEATURE migrate; then - ${NICE_CMD[@]} \ - "${CHBIND_CMD[@]}" \ - $_EXEC_ULIMIT "$VSERVER_DIR"/ulimits \ - $_VTAG --create "${OPTS_VTAG_CREATE[@]}" --silent -- \ - $_VCONTEXT --create "${OPTS_VCONTEXT_CREATE[@]}" -- \ - ${OPTION_STRACE:+$_STRACE -fF -o /tmp/vserver-start.$$} \ - ${USE_VNAMESPACE:+$_VNAMESPACE --set -- } \ - $_VLIMIT --dir "$VSERVER_DIR"/rlimits --missingok -- \ - $_VSCHED --xid self --force "${OPTS_VSCHED[@]}" -- \ - $_VSYSCTL --xid self --dir "$VSERVER_DIR"/sysctl --missingok -- \ - $_VUNAME --xid self --dir "$VSERVER_DIR"/uts --missingok -- \ - "${VSERVER_EXTRA_CMDS[@]}" \ - $_VUNAME --xid self --set -t context="$VSERVER_DIR" -- \ - $_VATTRIBUTE --set "${OPTS_VATTRIBUTE[@]}" -- \ - $_SAVE_CTXINFO "$VSERVER_DIR" \ - $_ENV -i "${OPTS_ENV[@]}" \ - $_VCONTEXT --migrate-self --endsetup --chroot $SILENT_OPT \ - "${OPTS_VCONTEXT_MIGRATE[@]}" "${OPTS_VCONTEXT_ENTER[@]}" -- \ - "${INITCMD_START[@]}" -else - if test -n "$_IS_FAKEINIT"; then - startsync_pipe=$($_MKTEMP vserver-start.XXXXXX) - $_RM -f "$startsync_pipe" - $_MKFIFO -m600 "$startsync_pipe" ## safe, since mkfifo does not follow symlinks - fi - - ${NICE_CMD[@]} \ - "${CHBIND_CMD[@]}" \ - $_EXEC_ULIMIT "$VSERVER_DIR/ulimits" \ - $_CHCONTEXT_COMPAT "${CHCONTEXT_OPTS[@]}" "${CHCONTEXT_INIT_OPTS[@]}" \ - $_SAVE_CTXINFO "$VSERVER_DIR" \ - $_ENV -i "${OPTS_ENV[@]}" \ - $_CHAINECHO "${_IS_FAKEINIT:+$startsync_pipe}" "" \ - $_CAPCHROOT "${CAPCHROOT_OPTS[@]}" . \ - "${INITCMD_START[@]}" - - ## the additional synchronization step is needed since vshelper.doInit - ## below might be executed before needed context information were - ## saved by $_SAVE_CTXINFO - ${_IS_FAKEINIT:+cat "$startsync_pipe"} >/dev/null -fi -is_executed=1 - -"${INITCMD_START_SYNC[@]}" -popd >/dev/null - -pushd "$VSERVER_DIR"/vdir/ >/dev/null -execScriptlets "$VSERVER_DIR" "$VSERVER_NAME" post-start -popd >/dev/null - -is_vshelper_init=1 -! vshelper.isEnabled "" "$VSERVER_DIR" || vshelper.doInit "$VSERVER_DIR" - -is_started=1