start
Start a managed process.
Usage
runix start [flags] [-- <entrypoint-args>]
Description
Starts one or more processes defined in the configuration file, or starts a single process specified by name or inline flags. All processes respect dependency ordering and runtime detection.
From Config File
# Start all processes from runix.yaml
runix start --config runix.yaml
# Start a specific process by name
runix start api
Inline (No Config File)
# Start a Go binary
runix start --name api --runtime go -- ./cmd/api --port 8080
# Start a Python script
runix start --name worker --runtime python -- worker.py --verbose
# Start with multiple instances
runix start --name api --instances 3 -- ./cmd/api
# Start with environment variables
runix start --name api --env PORT=8080 --env LOG_LEVEL=info -- ./cmd/api
# Start with a working directory
runix start --name api --cwd /app -- ./cmd/api
# Start with watch mode
runix start --name api --watch -- ./cmd/api
Flags
| Flag | Short | Type | Default | Description |
|---|---|---|---|---|
--config | -c | string | runix.yaml | Config file path |
--name | -n | string | Process name (required for inline mode) | |
--runtime | string | auto | Runtime: go, python, node, bun | |
--instances | -i | int | 1 | Number of copies to run |
--env | -e | string[] | Environment variables (KEY=VALUE) | |
--cwd | string | current | Working directory | |
--watch | -w | false | Enable file watching | |
--dry-run | false | Print what would be started without starting | ||
--format | -f | string | text | Output format: text, json |
Multi-Instance Naming
When --instances > 1, processes are named with a numeric suffix:
api-1, api-2, api-3
Each instance gets a unique internal ID and its own log directory.
Dependency Ordering
When starting from a config file, processes are started in dependency order:
- Processes with no dependencies start first
- Higher priority processes start before lower priority
- Processes with
depends_onwait for their dependencies to be running
Exit Behavior
- Returns immediately after all processes are started (unless
--watchis used) - When running in direct mode (no daemon), the command blocks until all processes exit
- Use Ctrl+C to stop all processes in direct mode
Examples
# Start all with daemon
runix daemon start
runix start --config runix.yaml
# Dry run to see what would start
runix start --config runix.yaml --dry-run
# Start single process with watch mode
runix start api --watch
# Start with JSON output
runix start api --format json