in reply to how to kill deattached process

I have never had to deal with infanticide across multiple machines, but when it comes to child management I have found Parallel::Forker very helpful for monitoring, polling and if nessecary (sp.?), brutally murdering processes.

You can also use it for scheduling launches, for example a cleanup job like the one you describe. It also handles process trees, which might be a way of avoiding the "when one user Ctrl-C's, how do i only kill their processes?" problem, i.e. by keeping a separate tree for each user?

Anyway, have a play and hopefully it will help and not bee too much of a pain to refactor into your code.

Just a something something...