Circus is an open source program developed to run, control and monitor processes and sockets. It was built using Python - a powerful programming language and ZeroMQ - one of the most popular open source messaging libraries. They are the only Circus dependencies. It is compatible with Python 2.6, 2.7, 3.2 and 3.3. Since Circus is built on the top of the ZeroMQ library, its protocols have no security, but there is an option to set up an SSH tunnel to access a Circus system on a server from another machine.
Circus can be used through a web interface, a command-line interface, or programmatically via its Python API. Circus has a command-line script called circusd, where processes are organized in one or several watchers (the program for Circus to run) to simplify the management.
As a process manager Circus (re)launches and monitors processes, opens and logs activity in all the sockets. You can increase or decrease the amount of running processes, add or kill runaway processes, etc. The main new features of recent release are fully asynchronous core functionality and a lot of code refactoring. You can have even more control over the processes Circus runs, like receiving a continuous feedback on the Memory usage / CPU per process. You can do any maintenance operation on a live stack.
Quintagroup used Circus during the development of File Transfer solution for Business. The aim was to create an innovative and secure large file sharing solution for business all over the world that would work over FTP and solve the related problems at local and global levels. We decided to implement a supervising utility with Circus, since it is programmable in Python and has a web console for monitoring, it can bind sockets and handle logging, and sends all the events over a ZeroMQ PUB socket.
Circus is a robust process and socket manager. To get more information read documentation on http://circus.readthedocs.org or go to Circus repository on Github.