I manage a small distributed computing cluster for my research group. We don't run distributed jobs very often so the machines tend to just sit there idle, generating heat.

I already have a WOL script that can be run by the job scheduler to bring up the machines when it's time to run a job, but I'm not sure the best way to bring the servers back down once they are idle. I could write a cron job that waits until the workers are idle for more than a certain amount of time before hibernating the system, but before I go writing my own thing, I was wondering if there is an existing software package that does this sort of thing.