Process Manager


Phase 1

Initial Requirement: to be able to run and test the 0MQ Guide examples automatically, i.e. without any user intervention. The minimum requirement for this is a timeout on the process.

The next feature needed is to kill servers when the client examples complete, since the server isn't needed any more. This requires some conditional kill operations. Diagnostics will just go to standard output, so they can be redirected and examined after a test run is complete.

Next: we want to log the status of the examples, to ensure the programs didn't crash or terminate prematurely or in error. We'll need some kind of logging mechanism.

Next: we want to gather the outputs and compare with what is expected to check for correctness.

Phase 2

Here we'll generalise the overall capabilities to provide better monitoring and control, possibly including a way to view the network status on a web browser.

Phase 3

This phase will extend the capabilities to remote process management. We'll use ssh (secure shell) to start daemons on target machines, and 0MQ to communicate with them. This will allow management of a network remotely without using ssh once the daemons are started.

Phase 4

Add security and encryption to the network management.


At present I have a simple process manager which launches a process together with a monitoring thread. The thread polls the process status to see if it is running.