#!/bin/sh
#
# vprocunhide  sets vserver related attributes for /proc
#
# chkconfig: 2345 26 74
# description: Makes some /proc entries visibly for vservers
#
# $Id: vprocunhide.init,v 1.12 2008/11/12 22:05:47 arekm Exp $

# if kernel not capable, exit early
if [ ! -d /proc/virtual ]; then
	case "$1" in
	start|stop|reload|restart)
		exit 0
		;;
	esac
fi

# Source function library.
. /etc/rc.d/init.d/functions

[ -n "$UTIL_VSERVER_VARS" ] || UTIL_VSERVER_VARS=/usr/lib/util-vserver/util-vserver-vars
if [ ! -e "$UTIL_VSERVER_VARS" ] ; then
	echo "Can not find util-vserver installation (the file '$UTIL_VSERVER_VARS' would be expected); aborting..." >&2
	exit 1
fi
. "$UTIL_VSERVER_VARS"

$_VSERVER_INFO - FEATURE iattr || exit 0

start() {
	show "Fixing vservers /proc entries visibility"
	busy
	$_VPROCUNHIDE
	RETVAL=$?
	deltext
	case "$RETVAL" in
		0)	ok;;
		2)	ok; RETVAL=0;;
		*)	fail;;
	esac
	[ "$RETVAL" -eq 0 ] && touch /var/lock/subsys/vprocunhide
}

stop() {
	show "Stopping vservers /proc entries visibility"
	busy
	rm -f /var/lock/subsys/vprocunhide
	ok
}

case "$1" in
  start|restart|reload)
	start
	;;
  stop)
	stop
	;;
  status)
	if [ -f /var/lock/subsys/vprocunhide ]; then
		echo "vservers /proc entries were fixed"
	else
		echo "vservers /proc entries were not fixed"
	fi
	;;
  *)
	msg_usage "$0 {start|stop|reload|restart|status}"
	exit 3
	;;
esac

exit $RETVAL
