Allow daemons to "hibernate", reducing pool size to 0 for a time

Authored by epriestley on Feb 24 2017, 5:04 PM.

Description

Allow daemons to "hibernate", reducing pool size to 0 for a time

Summary:
Ref T12298. This change is the libphutil changes to support hibernation. The next change makes the Trigger daemon hibernate.

We already support having daemons exit, waiting a little while, then restarting them. We do this when configuration changes, by sending the daemons a signal. They exit, then we restart them a few seconds later.

This allows daemons to send a message to the overseer saying "when I exit, wait X seconds to restart me". Then they can exit and hibernate for a while before the overseer restarts them normally.

Test Plan: See next change.

Reviewers: chad

Reviewed By: chad

Maniphest Tasks: T12298

Differential Revision: https://secure.phabricator.com/D17407