kantoku
raw JSON → 0.18.3 verified Mon Apr 27 auth: no python
A process manager built on top of Circus for running and monitoring multiple processes and sockets. Current version 0.18.3, actively maintained with recent updates for Python 3.13 support and reliability fixes.
pip install kantoku Common errors
error ModuleNotFoundError: No module named 'circus' ↓
cause circus is a required dependency but not installed automatically? It is bundled, but some installations may fail if circus is missing.
fix
Run
pip install circus to ensure circus is installed. error AttributeError: module 'kantoku' has no attribute 'Arbiter' ↓
cause Importing from the wrong module level.
fix
Use
from kantoku import Arbiter instead of import kantoku; kantoku.Arbiter. Warnings
breaking In version 0.18.0, the arbitter's quit_on_failure behavior changed to quit when any watcher fails. Previous versions allowed continued operation. ↓
fix Upgrade to >=0.18.2 or set `quit_on_failure=False` on the Arbiter.
gotcha Watcher commands are run as shell commands (via subprocess). Ensure proper quoting and escaping to avoid injection or argument parsing issues. ↓
fix Use lists or shlex.quote() for commands with arguments, e.g., cmd=['python', '-m', 'http.server', '8000'] instead of a string.
Imports
- Arbiter wrong
from circus import Arbitercorrectfrom kantoku import Arbiter - Watcher wrong
from circus import Watchercorrectfrom kantoku import Watcher
Quickstart
from kantoku import Arbiter, Watcher
watcher = Watcher(
name="my_app",
cmd="python -m http.server 8000",
numprocesses=1,
)
arbiter = Arbiter(
watchers=[watcher],
)
arbiter.start()