DF-5534 / trigger.sh
#!/bin/sh VK=/usr/obj/usr/src/sys/VKERNEL64/kernel.debug run_vk() { name=$1; secs=$2; mem=$3; shift 3 pkill -9 -f kernel.debug 2>/dev/null; sleep 3 i=0; while pgrep -f kernel.debug >/dev/null 2>&1 && [ $i -lt 60 ]; do sleep 1; i=$((i+1)); done rm -f /tmp/vkin.$name /tmp/vkc.$name mkfifo /tmp/vkin.$name (sleep $((secs + 90)) > /tmp/vkin.$name) & H=$! ( exec 3> /tmp/vkin.$name echo "ufs:vkd0" >&3 sleep 2 echo "ufs:vkd0" >&3 ) & P=$! ( cd /usr/obj/usr/src/sys/VKERNEL64 && exec ./kernel.debug -m $mem -r /vkroot.img -n 1 \ -e init_path=/bin/vkinit "$@" -s < /tmp/vkin.$name > /tmp/vkc.$name 2>&1 ) & V=$! echo "[$name] pid=$V" i=0 while [ $i -lt $secs ]; do kill -0 $V 2>/dev/null || break sleep 1; i=$((i+1)) done sleep 2 if kill -0 $V 2>/dev/null; then ALIVE=YES; else ALIVE=NO; fi echo "[$name] alive=$ALIVE after ${i}s" kill $P $H 2>/dev/null; kill -9 $V 2>/dev/null echo "[$name] === console ===" cat /tmp/vkc.$name echo "[$name] === end ===" } echo "########## RUN D: kern.nbuf=99999999999 ##########" run_vk nbuf2 100 2g -e kern.nbuf=99999999999 echo "########## RUN E: handle with closing X (success branch) ##########" run_vk deepX 100 512m \ -e boot.netif.ip=10.1.2.3 -e boot.netif.netmask=255.255.255.0 \ -e boot.netif.name=lo0 -e boot.nfsroot.server=127.0.0.1 \ -e boot.nfsroot.nfshandle=Xdeadbeefcafebabe0123456789abcdefaabbccddX echo "DE DONE" |