#!/bin/sh if [ -r /etc/defaults/rc.conf ]; then . /etc/defaults/rc.conf source_rc_confs elif [ -r /etc/rc.conf ]; then . /etc/rc.conf fi if [ -z "${jail_prog}" ]; then jail_prog=/usr/sbin/jail fi processjail() { /bin/ps aux | /usr/bin/perl -ane 'print $F[1],"\n" if($F[7] =~ /J/);' } stopjail() { jailp=`processjail` if [ -n "${jailp}" ]; then echo kill -TERM $jailp kill -TERM $jailp fi sleep 1; jailp=`processjail` if [ -n "${jailp}" ]; then echo kill -KILL $jailp kill -KILL $jailp fi } case "$1" in start) echo 'jail: Starting' stopjail # jailc=0 while : ; do eval jail_args=\$jail_hosts${jailc} if [ -n "${jail_args}" ]; then jail_dir=`echo $jail_args | awk '{print $1}'` jail_host=`echo $jail_args | awk '{print $2}'` echo "jail: Starting host : $jail_host" if [ -d "${jail_dir}/proc" ]; then # mount /proc if [ ! -d "${jail_dir}/proc/curproc" ]; then mount_procfs procfs "${jail_dir}/proc" fi # start $jail_prog ${jail_args} else echo "jail: Error: $jail_host" fi jailc=`expr ${jailc} + 1` else break; fi sleep 3; done echo 'jail: Finish' ;; stop) echo 'Stopping jail hosts' stopjail ;; *) echo "Usage: `basename $0` {start|stop}" >&2 exit 64 ;; esac exit 0