in reply to Backticks and SIGALRM

I've seen similar issues in shell scripting, and the solution I settled on was similar to what moritz is suggesting. We opened a FIFO queue, forked the process into a parent and child. The child launched the unreliable app, and helped funnel the output into the FIFO. Parent would read the FIFO and also set a timer. If the child lived longer than the time set on the timer, the child process was killed.