[Midnightbsd-cvs] src [6546] trunk/usr.sbin/service/service.sh: jail handling

laffer1 at midnightbsd.org laffer1 at midnightbsd.org
Mon Dec 23 08:33:24 EST 2013


Revision: 6546
          http://svnweb.midnightbsd.org/src/?rev=6546
Author:   laffer1
Date:     2013-12-23 08:33:24 -0500 (Mon, 23 Dec 2013)
Log Message:
-----------
jail handling

Modified Paths:
--------------
    trunk/usr.sbin/service/service.sh

Modified: trunk/usr.sbin/service/service.sh
===================================================================
--- trunk/usr.sbin/service/service.sh	2013-12-23 13:31:41 UTC (rev 6545)
+++ trunk/usr.sbin/service/service.sh	2013-12-23 13:33:24 UTC (rev 6546)
@@ -34,11 +34,13 @@
 	echo ''
 	echo 'Usage:'
 	echo "${0##*/} -e"
+	echo "${0##*/} -R"
 	echo "${0##*/} [-v] -l | -r"
 	echo "${0##*/} [-v] <rc.d script> start|stop|etc."
 	echo "${0##*/} -h"
 	echo ''
 	echo '-e	Show services that are enabled'
+	echo "-R	Stop and start enabled $local_startup services"
 	echo "-l	List all scripts in /etc/rc.d and $local_startup"
 	echo '-r	Show the results of boot time rcorder'
 	echo '-v	Verbose'
@@ -45,12 +47,13 @@
 	echo ''
 }
 
-while getopts 'ehlrv' COMMAND_LINE_ARGUMENT ; do
+while getopts 'ehlrRv' COMMAND_LINE_ARGUMENT ; do
 	case "${COMMAND_LINE_ARGUMENT}" in
 	e)	ENABLED=eopt ;;
 	h)	usage ; exit 0 ;;
 	l)	LIST=lopt ;;
 	r)	RCORDER=ropt ;;
+	R)	RESTART=Ropt ;;
 	v)	VERBOSE=vopt ;;
 	*)	usage ; exit 1 ;;
 	esac
@@ -57,6 +60,32 @@
 done
 shift $(( $OPTIND - 1 ))
 
+if [ -n "$RESTART" ]; then
+	skip="-s nostart"
+	if [ `/sbin/sysctl -n security.jail.jailed` -eq 1 ]; then
+		skip="$skip -s nojail"
+	fi
+	[ -n "$local_startup" ] && find_local_scripts_new
+	files=`rcorder ${skip} ${local_rc} 2>/dev/null`
+
+	for file in `reverse_list ${files}`; do
+		if grep -q ^rcvar $file; then
+			eval `grep ^name= $file`
+			eval `grep ^rcvar $file`
+			checkyesno $rcvar 2>/dev/null && run_rc_script ${file} stop
+		fi
+	done
+	for file in $files; do
+		if grep -q ^rcvar $file; then
+			eval `grep ^name= $file`
+			eval `grep ^rcvar $file`
+			checkyesno $rcvar 2>/dev/null && run_rc_script ${file} start
+		fi
+	done
+
+	exit 0
+fi
+
 if [ -n "$ENABLED" -o -n "$RCORDER" ]; then
 	# Copied from /etc/rc
 	skip="-s nostart"



More information about the Midnightbsd-cvs mailing list