thanks, that worked! the only issue is that @pids doesn't seem to be globally referenced, so even though it gets populated with the child pids, the other fork of the program (that is watching to see if they hang) sees that array as empty. So I just had to export them to a file and then read them in when the timeout happened.