Supervisor is a monitoring tool which controls various child processes and handles starting/restarting of these child processes when they exit abruptly or exit due to some reasons. It can be extended to control the processes via XML-RPC API over remote locations without logging in to the server.