やったことないんでダメかもしらんけど、
proc_open()ってのはそういうケースじゃ使えないの?