Start airflow uses mprocs by default:
breeze start-airflowYou can switch to using tmux instead by specifying the option:
breeze start-airflow --terminal-multiplexer tmuxOnce you select the terminal multiplexer, Breeze will remember your choice for future runs.
You can also switch terminal multiplexers by running breeze setup config:
breeze setup config --terminal-multiplexer mprocs
breeze setup config --terminal-multiplexer tmuxWhen Breeze will start Airflow components using mprocs to manage multiple processes in a single terminal window.
It will generate dynamically the required configuration based on the selected executor and options and use it,
the generated configuration file is stored in a files folder inside the container, so that you can also
use it outside of Breeze if needed.
| Command | Description |
|---|---|
breeze start-airflow --terminal-multiplexer mprocs |
Start Airflow with mprocs (and remember the choice) |
breeze start-airflow --terminal-multiplexer tmux |
Start Airflow with tmux (and remember the choice) |
breeze start-airflow --debug scheduler |
Debug scheduler with last selected multiplexer |
breeze start-airflow --dev-mode --terminal-multiplexer mprocs |
Use mprocs in dev mode (and remember the choice) |
| Key | Action |
|---|---|
↑↓ |
Navigate between processes |
r |
Restart selected process |
x |
Stop selected process |
s |
Start selected process |
a |
Add new process |
q |
Quit mprocs |
? |
Show help |
- scheduler - Airflow scheduler
- api_server (3.x+) / webserver (2.x) - Web interface
- triggerer - Handles deferred tasks
- dag_processor - Standalone DAG processor (when enabled)
- celery_worker - Celery worker (with CeleryExecutor)
- flower - Celery monitoring (when enabled)
- edge_worker - Edge worker (with EdgeExecutor)
| Variable | Purpose |
|---|---|
TERMNAL_MULTIPLEXER |
Use mprocs when set to "mprocs" |
INTEGRATION_CELERY |
Enable Celery components |
CELERY_FLOWER |
Enable Flower UI |
STANDALONE_DAG_PROCESSOR |
Enable standalone DAG processor |
BREEZE_DEBUG_* |
Enable component debugging |
DEV_MODE |
Enable development mode |
| Component | Port |
|---|---|
| Scheduler | 50231 |
| Dag Processor | 50232 |
| Triggerer | 50233 |
| API Server | 50234 |
| Celery Worker | 50235 |
| Edge Worker | 50236 |
| Web Server | 50237 |
mprocs is pre-installed in the Breeze CI image as of Airflow 3.x development. No additional setup is required.
For older images or custom setups, you can install mprocs manually:
# Download and install mprocs
MPROCS_VERSION="0.7.3"
SYSTEM=$(uname -s | tr '[:upper:]' '[:lower:]')
PLATFORM=$([ "$(uname -m)" = "aarch64" ] && echo "arm64" || echo "amd64")
curl -L "https://github.com/pvolok/mprocs/releases/download/v${MPROCS_VERSION}/mprocs-${MPROCS_VERSION}-${SYSTEM}-${PLATFORM}.tar.gz" \
| tar -xz -C /usr/local/bin/ mprocs
chmod +x /usr/local/bin/mprocsMouse clicks are not captured correctly by default in iTerm2 (which is often used by developers on MacOS). You need to configure "Enable Mouse reporting" to take advantage of the copying feature and mouse handling:
You can run mprocs outside of Breeze for custom setups. Create a mprocs.yaml configuration
file defining your processes, then start mprocs:
mprocs -f mprocs.yamlAn example mprocs.yaml file for Airflow components can be found in this directory - it has default configurations for all major Airflow components, but you can customize it as needed by copying it elsewhere and modifying the process definitions, uncommenting the commented or adding new processes.
