A Process & Socket Manager — Circus 0.17.2 documentation (original) (raw)
Circus is a Python program which can be used to monitor and control processes and sockets.
Circus can be driven via a command-line interface, a web interface or programmatically through its python API.
To install it and try its features check out the Step-by-step tutorial, or read the rest of this page for a quick introduction.
Running a Circus Daemon¶
Circus provides a command-line script call circusd that can be used to manage processes organized in one or more watchers.
Circus’ command-line tool is configurable using an ini-style configuration file.
Here’s a very minimal example:
[watcher:program] cmd = python myprogram.py numprocesses = 5
[watcher:anotherprogram] cmd = another_program numprocesses = 2
The file is then passed to circusd:
Besides processes, Circus can also bind sockets. Since every process managed by Circus is a child of the main Circus daemon, that means any program that’s controlled by Circus can use those sockets.
Running a socket is as simple as adding a socket section in the config file:
[socket:mysocket] host = localhost port = 8080
To learn more about sockets, see Working with sockets.
To understand why it’s a killer feature, read How does Circus stack compare to a classical stack?.
Controlling Circus¶
Circus provides two command-line tools to manage your running daemon:
- circusctl, a management console you can use to perform actions such as adding or removing workers
- circus-top, a top-like console you can use to display the memory and cpu usage of your running Circus.
To learn more about these, see CLI tools
Circus also offers a web dashboard that can connect to a running Circus daemon and let you monitor and interact with it.
To learn more about this feature, see The Web Console
What now ?¶
If you are a developer and want to leverage Circus in your own project, write plugins or hooks, go to Circus for developers.
If you are an ops and want to manage your processes using Circus, go to Circus for Ops.
Documentation index¶
- Installing Circus
- Tutorial
- Circus for Ops
- Circus for developers
- Use cases examples
- Design decisions
- Contributing to Circus
- Frequently Asked Questions
- Changelog history
- 0.17.2 2022-10-23
- 0.17.1 2020-09-18
- 0.17.0 2020-09-18
- 0.16.1 2019-12-27
- 0.16.0 2019-12-27
- 0.15.0 2018-06-15
- 0.14.0 2016-08-12
- 0.13 - 2016-01-27
- 0.12.1 - 2015-08-05
- 0.12 - 2015-06-02
- 0.11.1 - 2014-05-22
- 0.11 - 2014-05-21
- 0.10 - 2013-11-04
- 0.9.3 - 2013-09-04
- 0.9.2 - 2013-07-17
- 0.9 - 2013-07-16
- 0.8.1 - 2013-05-28
- 0.8 - 2013-05-24
- 0.7.1 - 2013-05-02
- 0.7 - 2013-04-08
- 0.6 - 2012-12-18
- 0.5.2 - 2012-07-26
- 0.5.1 - 2012-07-11
- 0.5 - 2012-07-06
- 0.4 - 2012-06-12
- 0.3.4 - 2012-05-30
- 0.3.3 - 2012-05-29
- 0.3.2 - 2012-05-24
- 0.3.1 - 2012-04-18
- 0.3 - 2012-04-18
- 0.2 - 2012-04-04
- 0.1 - 2012-03-20
- man pages
- Glossary: Circus-specific terms
- Copyright