Jails: An rc.d script
William M. Grim
wgrim at siue.edu
Sat May 22 18:18:36 PDT 2004
Very odd, my jails.sh script was not allowed to pass or something. So,
I'm pasting it into this email.
#!/bin/sh
#
# Start the jails at boot-up.
# The only jails it can start properly are the ones in directories labelled
# with an IP address.
JAILBASE=/usr/local/var/jail
LS="/bin/ls"
JLS="/usr/sbin/jls"
AWK="/usr/bin/awk"
GREP="/usr/bin/grep"
HOST="/usr/bin/host"
MOUNT="/sbin/mount"
UMOUNT="/sbin/umount"
SH="/bin/sh"
JAIL="/usr/sbin/jail"
KILLALL="/usr/bin/killall"
start_jails()
{
for JAILIP in `${LS} -1 ${JAILBASE}`; do
${MOUNT} -t devfs devfs ${JAILBASE}/${JAILIP}/dev
${MOUNT} -t procfs proc ${JAILBASE}/${JAILIP}/proc
JAILHOST=`${HOST} ${JAILIP} | ${AWK} '{ print $5; }'`
${JAIL} ${JAILBASE}/${JAILIP} ${JAILHOST} ${JAILIP}
${SH} /etc/rc
done
}
stop_jails()
{
echo "Even though you are stopping the jails, the JID may show up"
echo "when doing \`jls\`. This is most likely because some
connections" echo "are waiting to timeout."
for JID in `${JLS} | ${GREP} -v JID | ${AWK} '{ print $1; }'`; do
${KILLALL} -j ${JID}
echo "Killing JID: ${JID}"
done
for JAILIP in `\ls -1 ${JAILBASE}`; do
${UMOUNT} -f ${JAILBASE}/${JAILIP}/proc
${UMOUNT} -f ${JAILBASE}/${JAILIP}/dev
done
}
case "$1" in
start)
start_jails
;;
restart)
stop_jails
sleep 1
start_jails
;;
stop)
stop_jails
;;
esac
Thanks again, and sorry for the confusion.
William M. Grim wrote:
> Hi!
>
> I've written an rc.d script that can start/stop/restart jails, if they
> follow a certain pattern of setup. I'm strongly considering the
> placement of this in ports or base (ports seems most appropriate).
>
> Basically, if you have jails in /usr/local/var/jail/<IP>, my script
> can start it up automatically, as long as the IP is reachable by
> `host` (I know, it requires a little more work to remove this
> dependency for 192.168. addresses, etc).
>
> However, I was wondering if anyone would want to test it? All you
> have to do is take my attached script and place it in
> /usr/local/etc/rc.d/. If you have your jails located somewhere else,
> then edit the JAILBASE= line in the script.
>
> I would appreciate any constructive criticism about this script so
> that I can make it better. If you have any improvements you make,
> feel free to send them to me as well. I'll attempt to make it better
> over time and to write a man page for it.
>
> Many thanks.
>
>------------------------------------------------------------------------
>
>_______________________________________________
>freebsd-hackers at freebsd.org mailing list
>http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
>To unsubscribe, send any mail to "freebsd-hackers-unsubscribe at freebsd.org"
>
>
--
William Michael Grim
Student, Southern Illinois University at Edwardsville
Unix Network Administrator, SIUE, Computer Science dept.
Phone: (217) 341-6552
Email: wgrim at siue.edu
More information about the freebsd-hackers
mailing list