> #!/bin/sh > > java() > { > echo 'start' > sleep 5 > echo 'stop' > } > > sleep 1 && kill $$ & > java > kill $! >> { > echo 'start' > sleep 5 > echo 'stop' > } > > sleep 1 && kill $$ & > java > kill $!
That is very genious. However, I had to add an "exec" to the parent script. Here is the test parent script, see the exec line below: #!/bin/sh cd `dirname "$0"` THIS_SCRIPT_PROCESS="$$" sleep 5 && echo "killing parent script, PID $THIS_SCRIPT_PROCESS" && kill "$THIS_SCRIPT_PROCESS" & TERMINATOR_PROCESS="$!" exec ./child_script echo "killing terminator process, PID $TERMINATOR_PROCESS" && kill "$TERMINATOR_PROCESS" And here is the child script "child_script": #!/bin/sh echo "start" while true; do # Infinite loop; use some CPU so that it's easy to find this in the output of top. echo "foo" > /dev/null done echo "stop" Without the "exec" in the parent script, the parent's child is not killed when the parent is killed. _______________________________________________ freebsd-questions@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-questions To unsubscribe, send any mail to "freebsd-questions-unsubscr...@freebsd.org"