xref: /dragonfly/etc/rc.d/jail (revision 6fb88001)
1#!/bin/sh
2#
3# $FreeBSD: src/etc/rc.d/jail,v 1.4 2003/05/05 15:38:41 mtm Exp $
4# $DragonFly: src/etc/rc.d/jail,v 1.4 2005/11/19 21:47:32 swildner Exp $
5#
6
7# PROVIDE: jail
8# REQUIRE: LOGIN
9# BEFORE: securelevel
10
11. /etc/rc.subr
12
13name="jail"
14rcvar=`set_rcvar`
15start_cmd="jail_start"
16stop_cmd="jail_stop"
17
18jail_start()
19{
20	echo -n 'Configuring jails:'
21	echo -n ' set_hostname_allowed='
22	if checkyesno jail_set_hostname_allow ; then
23		echo -n 'YES'
24		${SYSCTL_W} 1>/dev/null jail.set_hostname_allowed=1
25	else
26		echo -n 'NO'
27		${SYSCTL_W} 1>/dev/null jail.set_hostname_allowed=0
28	fi
29
30	echo -n ' unixiproute_only='
31	if checkyesno jail_socket_unixiproute_only ; then
32		echo -n 'YES'
33		${SYSCTL_W} 1>/dev/null jail.socket_unixiproute_only=1
34	else
35		echo -n 'NO'
36		${SYSCTL_W} 1>/dev/null jail.socket_unixiproute_only=0
37	fi
38
39	echo -n ' sysvipc_allow='
40	if checkyesno jail_sysvipc_allow ; then
41		echo -n 'YES'
42		${SYSCTL_W} 1>/dev/null jail.sysvipc_allowed=1
43	else
44		echo -n 'NO'
45		${SYSCTL_W} 1>/dev/null jail.sysvipc_allowed=0
46	fi
47	echo '.'
48
49	echo 'Starting Jails.'
50	for _jail in ${jail_list}
51	do
52		eval jail_rootdir=\"\$jail_${_jail}_rootdir\"
53		eval jail_hostname=\"\$jail_${_jail}_hostname\"
54		eval jail_ip=\"\$jail_${_jail}_ip\"
55		eval jail_exec=\"\$jail_${_jail}_exec\"
56		[ -z ${jail_exec} ] && jail_exec="/bin/sh /etc/rc"
57
58		jail ${jail_rootdir} ${jail_hostname} ${jail_ip} ${jail_exec}
59	done
60}
61
62jail_stop()
63{
64	kill -TERM $(ps aux | awk '$8 ~ /.*J/ {print  $2};')
65}
66
67
68load_rc_config $name
69run_rc_command "$1"
70