From: Enrico Scholz Date: Tue, 16 Mar 2004 03:49:46 +0000 (+0000) Subject: initial checkin X-Git-Tag: VERSION_0_10~299 X-Git-Url: http://git.linux-vserver.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=462c8268093c2b86d36139a50296c125e48cc81f;p=util-vserver.git initial checkin git-svn-id: http://svn.linux-vserver.org/svn/util-vserver/trunk@1275 94cd875c-1c1d-0410-91d2-eb244daf1a30 --- diff --git a/util-vserver/distrib/redhat/initpre b/util-vserver/distrib/redhat/initpre new file mode 100755 index 0000000..a49289f --- /dev/null +++ b/util-vserver/distrib/redhat/initpre @@ -0,0 +1,22 @@ +#! /bin/bash + +# 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. + +vdir=$1/vdir +. "$2" + +## Fix/workaround the misclassification of %_netsharedpath's parent directories +mkdir -p "$vdir"/{etc/rc.d/init.d,/sbin,/usr/bin} \ No newline at end of file diff --git a/util-vserver/lib/isdynamicxid.c b/util-vserver/lib/isdynamicxid.c new file mode 100644 index 0000000..084819a --- /dev/null +++ b/util-vserver/lib/isdynamicxid.c @@ -0,0 +1,30 @@ +// $Id$ --*- c -*-- + +// Copyright (C) 2004 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. + + +#ifdef HAVE_CONFIG_H +# include +#endif + +#include "vserver.h" +#include "linuxvirtual.h" + +bool +vc_is_dynamic_xid(xid_t xid) +{ + return xid>=MIN_D_CONTEXT; +} diff --git a/util-vserver/scripts/vserver-wrapper b/util-vserver/scripts/vserver-wrapper new file mode 100755 index 0000000..765645a --- /dev/null +++ b/util-vserver/scripts/vserver-wrapper @@ -0,0 +1,96 @@ +#! /bin/bash + +# Copyright (C) 2004 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. + +: ${UTIL_VSERVER_VARS:=/usr/lib/util-vserver/util-vserver-vars} +test -e "$UTIL_VSERVER_VARS" || { + echo "Can not find util-vserver installation; aborting..." >&2 + exit 1 +} +. "$UTIL_VSERVER_VARS" + +test "$MARK" || MARK=default +: ${LOCKFILE:=vserver-$MARK} +: ${NUMPARALLEL:=6} + + +if test -e /etc/init.d/functions; then + . /etc/init.d/functions + lockfile=/var/lock/subsys/$LOCKFILE +else + success() { echo .; } + passed() { echo .; } + failure() { echo ERROR; } + lockfile=/var/run/$LOCKFILE +fi + + +function _tellResult() +{ + local rc=$1 + case "$rc" in + (0) success;; + (2) passed; rc=0;; + (*) failure;; + esac + echo + return $rc +} + +function start() +{ + echo -n $"Starting vservers of type '$MARK'..." + $_START_VSERVERS -m "$MARK" -j "$NUMPARALLEL" --all --start + _tellResult $? + local rc=$? + test "$rc" -ne 0 || touch "$lockfile" + return $rc +} + +function stop() +{ + echo -n $"Stopping vservers of type '$MARK'..." + $_START_VSERVERS -m "$MARK" -j "$NUMPARALLEL" --all --stop + _tellResult $? + local rc=$? + rm -f "$lockfile" + return $rc +} + +function restart() +{ + stop + start +} + +case "$1" in + start|stop|restart) $1;; + condrestart) + test -f $lockfile && restart || : + ;; + status) + test -f $lockfile && { + echo $"vservers of type '$MARK' were started" + exit 0 + } + echo $"vservers of type '$MARK' are not started" + exit 1 + ;; + *) + echo "Usage: $0 {start|stop|restart|condrestart|status}" + exit 2 + ;; +esac diff --git a/util-vserver/sysv/vservers-default b/util-vserver/sysv/vservers-default new file mode 100755 index 0000000..3d9b576 --- /dev/null +++ b/util-vserver/sysv/vservers-default @@ -0,0 +1,25 @@ +#!/bin/sh +# chkconfig: - 98 02 +# description: Wrapper to start the default vservers + +## The *basename* of the lockfile; this must be the same name like +## this if the initscript. Else, the vservers will not be stopped at +## shutdown +#LOCKFILE=vserver-default + +## Number of vservers which shall be started in parallel; since most +## initmethods are spending much time time in sleeps, it is safe to +## use a high number here +#NUMPARALLEL=99 + +## The vserver-flavor; the 'default' vservers will be started very late +## which may be inappropriately for early services like nameservers or +## VPN tunnels. By copying this initscript to a new name and adapting +## the startup-position (for RH/Fedora the numbers in line 2), other +## vservers can be selected. Identification of vservers happens by +## putting the flavor into /etc/vservers//apps/init/mark. +#MARK=default + +export MARK NUMPARALLEL LOCKFILE +exec /usr/lib/util-vserver/vserver-wrapper "$@" +