5 # REQUIRE: LOGIN NETWORKING
11 start_cmd="vkernel_start"
12 stop_cmd="vkernel_stop"
16 echo -n 'Starting virtual kernels:'
17 for _vkernel in ${vkernel_list}
19 # Check if already running
20 eval pidfile="/var/run/vkernel.${_vkernel}.pid"
21 if [ -f "${_pidfile}" ]; then
23 warn "Vkernel ${_vkernel} already running? (check ${pidfile})"
27 # Configure vkernel binary
28 eval _bin=\"\${vkernel_${_vkernel}_bin}\"
29 if [ -z "${_bin}" -o ! -x "${_bin}" ]; then
31 warn "Missing or undefined binary for vkernel '${_vkernel}'. Skipping."
37 # Configure vkernel memory
38 eval _memsize=\"\$vkernel_${_vkernel}_memsize\"
39 if [ -z "${_memsize}" ]; then
41 warn "No memsize has been defined for vkernel '${_vkernel}'. Skipping."
44 memsize="-m ${_memsize}"
47 # Configure vkernel root image(s)
48 eval _rootimgs=\"\${vkernel_${_vkernel}_rootimg_list}\"
49 if [ -z "${_rootimgs}" ]; then
51 warn "No root image has been defined for vkernel '${_vkernel}'. Skipping."
54 for _rootimg in ${_rootimgs}
56 eval rootimgs=\"${rootimgs} -r ${_rootimg}\"
60 # Configure optional vkernel network interface(s)
61 eval _ifaces=\"\${vkernel_${_vkernel}_iface_list}\"
62 if [ -n "${_ifaces}" ]; then
63 for _iface in ${_ifaces}
65 eval ifaces=\"${ifaces} -I ${_iface}\"
69 # Configure optional console logfile
70 eval logfile=\"\${vkernel_${_vkernel}_logfile}\"
71 [ -z "${logfile}" ] && logfile="/dev/null"
73 # Configure optional flags
74 eval flags=\"\${vkernel_${_vkernel}_flags}\"
76 eval "daemon ${bin} ${memsize} ${rootimgs} ${ifaces} ${flags} -p ${pidfile} >>${logfile} 2>&1"
77 echo -n " ${_vkernel}"
84 for _vkernel in ${vkernel_list}
86 eval pidfile="/var/run/vkernel.${_vkernel}.pid"
87 if [ -f "${pidfile}" ]; then
88 eval pid=`cat ${pidfile}`
90 eval _bin=\"\${vkernel_${_vkernel}_bin}\"
91 if [ -n "$_bin" ]; then
92 eval pid=`ps auxwww | grep ${_bin} | grep -v grep | awk '{print $2}'`
95 if [ -z "${pid}" ]; then
96 warn "vkernel '${_vkernel}' not running?"
98 eval kill -TERM ${pid}