Handle SIGINT from the user
Currently, when Engage receives SIGINT, it doesn't do anything intelligent. It probably should. At present, I have two questions as to how to go about this:
- What should Engage do about currently-running process when receiving SIGINT? Perhaps Engage should stop launching new tasks and exit after either:
- waiting until all running processes finish
- sending SIGINT to all running processes
- sending SIGKILL to all running processes
- waiting N seconds for all running processes to exit, sending SIGINT to any remaining, waiting M seconds, and sending SIGKILL to any remaining
- How can we reliably test this behavior?