summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'sys-cluster/vzctl/files/vz.initd')
-rw-r--r--sys-cluster/vzctl/files/vz.initd263
1 files changed, 0 insertions, 263 deletions
diff --git a/sys-cluster/vzctl/files/vz.initd b/sys-cluster/vzctl/files/vz.initd
deleted file mode 100644
index 6a7149e..0000000
--- a/sys-cluster/vzctl/files/vz.initd
+++ /dev/null
@@ -1,263 +0,0 @@
-#!/sbin/runscript
-# Copyright 1999-2005 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/sys-cluster/vzctl/files/vz-3.0.10.initd,v 1.2 2006/07/09 10:29:24 phreak Exp $
-
-depend() {
- need net
- before iptables
-}
-
-check_config() {
- # if we don't want openvz running, say so
- [ "${VIRTUOZZO}" = "yes" ] || return 1
-
- # set default values
- : ${VZCTL:=/usr/sbin/vzctl}
- : ${VZQUOTA:=/usr/sbin/vzquota}
- : ${VZVEINFO:=/proc/vz/veinfo}
- : ${VPSCONFDIR:=/etc/vz}
- : ${PRELOAD_MODULES:="af_packet"}
- : ${MODULES:="vzmon vzdquota vzdev"}
- : ${MIGRATE_MODULES:="vzcpt vzrst"}
- : ${NET_MODULES="vznetdev vznet"}
- : ${VZDEV:=venet0}
- : ${PARALLEL:=4}
-
- # check if you should load vzwdog module
- [ "${VZWDOG}" = "yes" ] && MODULES="${MODULES} vzwdog"
-
- # we need a working vzctl
- if [ ! -x "${VZCTL}" ]; then
- eerror "vzctl missing (${VZCTL})"
- return 1
- fi
-
- # prevent dumb users from failure
- if [ ! -e /dev/vzctl ]; then
- eerror "Missing device node /dev/vzctl"
- einfo
- einfo "Please create the vzctl device node using the following command:"
- einfo " /bin/mknod /dev/vzctl c 126 0"
- einfo
- return 1
- fi
-
- if [ -z "${VE0CPUUNITS}" ]; then
- ewarn "VE0CPUUNITS is not set in /etc/conf.d/vz; using default value of 1000"
- VE0CPUUNITS=1000
- fi
- return 0
-}
-
-setup_ve0() {
- local msg ve0conf="${VPSCONFDIR}/0.conf"
-
- msg=$(${VZCTL} set 0 --cpuunits ${VE0CPUUNITS} 2>&1)
- [ $? -ne 0 ] && ewarn "vzctl set 0 --cpuunits ${VE0CPUUNITS} failed: ${msg}"
-
- test -f ${ve0conf} || return
- egrep -q '^ONBOOT=yes\|^ONBOOT=\"yes\"' ${ve0conf} || return
-
- ebegin "Configuring hardware node UB resources: "
- msg=$(${VZCTL} set 0 --reset_ub 2>&1)
- eend $? ${msg}
-}
-
-start_net() {
- local mod
-
- # we don't operate on a running interface
- if /sbin/ip addr ls | grep -q "venet0:.*UP" 2>/dev/null; then
- return 0
- fi
-
- # load necessary modules
- for mod in ${NET_MODULES}; do
- /sbin/modprobe ${mod} 2>/dev/null
- done
-
- # configure the device
- ebegin "Bringing up interface ${VZDEV}"
- /sbin/ip link set ${VZDEV} up
- eend $?
-
- /sbin/ip addr add 0.0.0.0/0 dev ${VZDEV}
-
- ebegin "Configuring interface ${VZDEV}"
- /sbin/sysctl -q -w net.ipv4.conf.${VZDEV}.send_redirects=0
- eend $?
-}
-
-stop_net() {
- local mod
-
- if /sbin/ip a l | grep -q "venet0:.*UP" 2>/dev/null; then
- ebegin "Bringing down interface ${VZDEV}"
- /sbin/ip link set ${VZDEV} down 2>/dev/null
- eend $?
- fi
-
- # remove all modules we probably loaded on start_net
- for mod in ${NET_MODULES}; do
- /sbin/modprobe -r ${mod} > /dev/null 2>&1
- done
-}
-
-start_ve() {
- local veid velist msg need_restart=""
-
- # get all VPSs we should start on boot
- if ! cd ${VPSCONFDIR}; then
- eerror $? "Unable to cd to ${VPSCONFDIR}"
- return 1
- fi
- velist=$(grep -l '^ONBOOT=yes\|^ONBOOT=\"yes\"' [0-9]*.conf 2>/dev/null | sed -e 's/.conf//g' | sort -n)
- cd - >/dev/null
-
- /sbin/sysctl -q -w net.ipv4.route.src_check=0
-
- for veid in ${velist}; do
- ebegin "Starting VPS ${veid}"
- if [ "${VZFASTBOOT}" = "yes" -a "${DISK_QUOTA}" = "yes" ]; then
- ${VZQUOTA} stat ${veid} >/dev/null 2>&1
- if [ $? -eq 6 ]; then
- if ${VZQUOTA} show ${veid} 2>&1 | grep "vzquota : (warning) Quota is running" >/dev/null 2>&1; then
- ${VZQUOTA} on ${veid} --nocheck >/dev/null 2>&1
- need_restart="${need_restart} ${veid}"
- fi
- fi
- fi
- msg=$(${VZCTL} start ${veid} 2>&1)
- eend $? "${msg}"
- done
-
- for veid in ${need_restart}; do
- ebegin "Stopping VPS ${veid}"
- msg=$(${VZCTL} stop ${veid})
- eend $? "${msg}"
-
- ebegin "Starting VPS ${veid}"
- msg=$($VZCTL start ${veid} 2>&1)
- eend $? "${msg}"
- done
-
- # we're ok even if some VPSs failed to start
- return 0
-}
-
-stop_ve() {
- local veid velist msg m mounts fail i iter pid pids quota
-
- if [ -f ${VZVEINFO} ]; then
- for ((i = 0; i <= 2; i++)); do
- iter=0
- pids=
- velist=$(awk '{print $1;}' < ${VZVEINFO} | grep -v "^0$")
-
- for veid in ${velist}; do
- ebegin "Shutting down VPS $veid"
- # Set fairsched parameters to maximum so
- # VPS will stop fast
- ${VZCTL} set ${veid} --cpuunits 2000 --cpulimit 0 >/dev/null 2>&1
- ${VZCTL} --skiplock stop ${veid} >/dev/null 2>&1 &
- pids="${pids} $!"
- let iter++
- sleep 1
- if [ ${iter} -gt ${PARALLEL} ]; then
- for pid in ${pids}; do
- wait ${pid}
- done
- pids=
- iter=0
- fi
- done
-
- for pid in ${pids}; do
- wait ${pid}
- done
- done
- fi
-
- iter=0
- fail=1
-
- while [ ${iter} -lt 5 -a ${fail} -ne 0 ]; do
- fail=0
- mounts=$(awk '{if ($3=="simfs") print $2}' /proc/mounts)
-
- for m in ${mounts}; do
- ebegin "Unmounting VPS area ${m}"
- msg=$(umount ${m} 2>&1)
- eend $? "${msg}"
- if [ $? -ne 0 ]; then
- let fail++
- fuser -k -m ${m} > /dev/null 2>&1
- fi
- done
-
- let iter++
- done
-
- # turn quota off
- quota=$(awk -F: '/^[0-9]+:/{print $1}' /proc/vz/vzquota 2>/dev/null)
-
- for m in ${quota}; do
- ebegin "Turning quota off for VPS ${m}"
- msg=$(vzquota off ${m} 2>&1)
- eend $? "${msg}"
- done
-}
-
-start() {
- check_config || return
-
- local mod rc
-
- ebegin "Loading OpenVZ modules"
- for mod in ${PRELOAD_MODULES}; do
- /sbin/modprobe -r ${mod} >/dev/null 2>&1
- /sbin/modprobe ${mod} >/dev/null 2>&1
- done
-
- for mod in ${MODULES}; do
- /sbin/modprobe ${mod} >/dev/null 2>&1
- rc=$?
- if [ ${rc} -ne 0 ]; then
- eend ${rc} "failed to load module ${mod}"
- return ${rc}
- fi
- done
-
- for mod in ${MIGRATE_MODULES}; do
- /sbin/modprobe ${mod} >/dev/null 2>&1
- done
- eend
-
- start_net
-
- setup_ve0
-
- start_ve
-}
-
-stop() {
- check_config || return
-
- local mod
-
- stop_ve
- stop_net
-
- for mod in ${MODULES}; do
- /sbin/modprobe -r ${mod} > /dev/null 2>&1
- done
-
- for mod in ${PRELOAD_MODULES}; do
- /sbin/modprobe -r ${mod} > /dev/null 2>&1
- done
-
- # Even if some modules failed to unload (say they were not loaded)
- # we return 0 for the service to be marked as stopped.
- return 0
-}