Make non runnable jails stoppable, second attempt

This commit is contained in:
erdgeist 2010-01-11 03:57:13 +00:00
parent 90caf58048
commit feedbc6d52

View File

@ -35,30 +35,38 @@ stopcrypto_cmd="do_cmd stopcrypto _"
do_cmd() do_cmd()
{ {
action=$1; message=$2; shift 2; action=$1; message=$2; shift 2;
unset ezjail_list ezjail_pass ezjail_mds unset ezjail_list ezjail_pass ezjail_mds ezjail_stop
ezjail_cfgs=${ezjail_prefix}/etc/ezjail/
ezjail_fromrc="YES" ezjail_fromrc="YES"
case "${action}" in *stop) ezjail_stop="YES";; esac
# If a jail list is given on command line, process it # If a jail list is given on command line, process it
# If not, fetch it from our config directory # If not, fetch it from our config directory
if [ "$*" ]; then if [ "$*" ]; then
ezjail_list=`echo -n $* | tr -c '[:alnum:] ' '_'` ezjail_list=`echo -n $* | tr -c '[:alnum:] ' '_'`
unset ezjail_fromrc unset ezjail_fromrc
else else
case "${action}" in *stop) reverse_command="tail -r";; *) reverse_command="cat";; esac [ "${ezjail_stop}" ] && reverse_command="tail -r" || reverse_command="cat"
[ -d "${ezjail_prefix}/etc/ezjail/" ] && cd "${ezjail_prefix}/etc/ezjail/" && ezjail_list=`ls | xargs rcorder | ${reverse_command}` [ -d "${ezjail_cfgs}" ] && cd "${ezjail_cfgs}" && ezjail_list=`ls | xargs rcorder | ${reverse_command}`
echo -n "${message##_}" echo -n "${message##_}"
fi fi
for ezjail in ${ezjail_list}; do for ezjail in ${ezjail_list}; do
# If jail is temporary disabled (dot in name), skip it for starts unset ezjail_config
case "${action}" in *stop) ezjail=${ezjail%%.*};; esac
[ "${ezjail%.*}" != "${ezjail}" ] && echo -n " skipping ${ezjail}" && continue [ -e "${ezjail_jailcfgs}/${ezjail}" ] && ezjail_config="${ezjail_jailcfgs}/${ezjail}"
[ -e "${ezjail_jailcfgs}/${ezjail}.norun" ] && ezjail_config="${ezjail_jailcfgs}/${ezjail}.norun"
# Check for jails config # Check for jails config
[ ! -r "${ezjail_prefix}/etc/ezjail/${ezjail}" ] && echo " Warning: Jail ${ezjail} not found." && continue [ -f "${ezjail_config}" ] || echo " Warning: Jail ${ezjail} not found." && continue
# If jail is temporary disabled (dot in name), skip it for starts
[ "${ezjail_stop}" ] && ezjail="${ezjail%%.*}"
[ "${ezjail%.*}" != "${ezjail}" ] && echo -n " skipping ${ezjail}" && continue
# Read config file # Read config file
. "${ezjail_prefix}/etc/ezjail/${ezjail}" . ${ezjail_config}
eval ezjail_rootdir=\"\$jail_${ezjail}_rootdir\" eval ezjail_rootdir=\"\$jail_${ezjail}_rootdir\"
eval ezjail_image=\"\$jail_${ezjail}_image\" eval ezjail_image=\"\$jail_${ezjail}_image\"