Child Processes of a Runtime.exec'd process
I am using Runtime.exec() to execute a UNIX shell script (start.sh). This shell script, in the course of its execution, runs a number of commands and backgrounds them (they happen to be other java processes, but that shouldn't matter in this case). The script then terminates, but my call to process.waitFor() seems to block until the processes created by start.sh stop.
This is not the desired behavior for me. I'd like the process.waitFor() method to stop blocking once start.sh ends, regardless of what its (start.sh's) children do. A quick "ps" on the machine notes the start.sh process, and the child processes each witha PPID of the start.sh process. After execution, start.sh disappears and those PPIDs become 1. The only way I can "unstick" the waitFor() method is to kill each of start.sh's subprocesses.
I am appropriately handling stdin, stdout, and stderr. My method works appropriately for other scripts that I run which do not launch child processes (stop.sh, for example). Can anyone offer insight into what I can do to resolve this problem?

