in reply to Looking for a 'watchdog' module

A quick scan of CPAN reveals Parallel::ForkManager. This should go some ways towards your goal. You can implement the watchdog behaviour using the callbacks featured in that module, but a cursory glance at the docs does not reveal a way to modify the number of children during runtime, so I'm afraid this module might not help you there