Oh, so that's something like timeout (as distributed in coreutils on GNU/Linux systems, and according to man pages available on the web also on *BSD etc)?
Agreed. I usually end up doing the opposite in node, whenever there is an existing *nix tool for a job, I'll spawn that from my node process rather than reimplementing it. Node's child process machinery is the best I've seen so far.