Bug #1870 » 0002-rc.d-completely-stop-the-vkernels.patch
| etc/defaults/rc.conf | ||
|---|---|---|
|
vkernel_enable="NO" # Set to YES to enable starting of vkernels
|
||
|
vkernel_list="" # Space separated list of names of vkernels
|
||
|
#vkernel_bin="/boot/kernel.VKERNEL" # Default path to the vkernel binary
|
||
|
#vkernel_kill_timeout="45" # Default timeout before a SIGKILL is issued
|
||
|
#
|
||
|
# Create an entry for each vkernel specified in vkernel_list
|
||
| ... | ... | |
|
# Optional: path to the console log file
|
||
|
#vkernel_example_flags="-U"
|
||
|
# Optional: aditional flags to start the vkernel with
|
||
|
#vkernel_example_kill_timeout="45"
|
||
|
# Optional: timeout before SIGKILL is issued when stopping the vkernel
|
||
|
##############################################################
|
||
|
### Define source_rc_confs, the mechanism used by /etc/rc.* ##
|
||
| etc/rc.d/vkernel | ||
|---|---|---|
|
# Configure optional flags
|
||
|
eval flags=\"\${vkernel_${_vkernel}_flags}\"
|
||
|
eval "daemon ${bin} ${memsize} ${rootimgs} ${ifaces} ${flags} -p ${pidfile} >>${logfile} 2>&1"
|
||
|
eval "daemon ${bin} ${memsize} ${rootimgs} ${ifaces} ${flags} -p ${pidfile} >>${logfile} 2>&1 </dev/null"
|
||
|
echo -n " ${_vkernel}"
|
||
|
done
|
||
|
echo '.'
|
||
| ... | ... | |
|
fi
|
||
|
if [ -z "${pid}" ]; then
|
||
|
warn "vkernel '${_vkernel}' not running?"
|
||
|
else
|
||
|
eval kill -TERM ${pid}
|
||
|
continue
|
||
|
fi
|
||
|
eval kill -TERM ${pid}
|
||
|
eval _kill_timeout=\"\${vkernel_${_vkernel}_kill_timeout}\"
|
||
|
if [ -z "${_kill_timeout}" ]; then
|
||
|
eval _kill_timeout=\"\${vkernel_kill_timeout}\"
|
||
|
if [ -z "${_kill_timeout}" ]; then
|
||
|
_kill_timeout=60
|
||
|
fi
|
||
|
fi
|
||
|
# Check that the vkernel ended properly
|
||
|
cnt=1
|
||
|
eval temp_pid=`ps axwwp ${pid} | grep -wE "^[ ]+${pid}" | grep -v grep | awk '{print $1}'`
|
||
|
while [ ! -z "${temp_pid}" -a "${cnt}" -lt "${_kill_timeout}" ]; do
|
||
|
eval temp_pid=`ps axwwp ${pid} | grep -wE "^[ ]+${pid}" | grep -v grep | awk '{print $1}'`
|
||
|
cnt=`expr $cnt + 1`
|
||
|
sleep 1
|
||
|
done
|
||
|
|
||
|
if [ ! -z "${temp_pid}" ]; then
|
||
|
eval kill -KILL ${pid}
|
||
|
warn "'${_vkernel}' had to be forcefully killed."
|
||
|
fi
|
||
|
done
|
||
|
}
|
||