Core Features
Service Management
runnem provides a simple way to manage multiple services in your project. Each service runs in its own GNU screen session, making it easy to start, stop, and monitor your services.
Starting Services
Start all services in your project:
runnem up
Start a specific service:
runnem up api
Start a specific service and immediately view its logs:
runnem run api
When starting services, runnem will:
- Check for port conflicts
- Start services in dependency order
- Wait for dependent services to be ready
- Show status messages for each service
Stopping Services
Stop all services:
runnem down
Stop a specific service:
runnem down api
When stopping services, runnem will:
- Stop the specified service(s)
- Clean up any processes using the service's ports
Restarting Services
Restart all services:
runnem restart
Restart a specific service:
runnem restart api
Restart a specific service and immediately view its logs:
runnem rerun api
When restarting services, runnem will:
- Stop the specified service(s) (if running)
- Wait briefly to ensure complete shutdown
- Start the service(s) again
- Respect dependencies when restarting all services
Note: Restarting a stopped service will simply start it, making restart
useful for ensuring services are running.
Listing Services
View the status of all services:
runnem list
# or
runnem ls
This will show:
- Which services are running
- The URLs of running services
- The status of each service (Running/Stopped)
Viewing Logs
View logs for a specific service:
runnem log api
This will:
- Attach to the service's screen session
- Show the service's output
- Allow you to scroll through the logs
- Press Ctrl+A then D to detach from the logs
Port Management
If a service fails to start due to a port conflict, you can kill the process using the port:
runnem kill 3000
This will:
- Find any process using port 3000
- Kill the process
- Clean up the port for your service
Development Workflow Commands
For active development, these combined commands are particularly useful:
runnem run <service>
- Start a service and immediately see its logsrunnem rerun <service>
- Restart a service and immediately see its logs
These commands are perfect for:
- Testing configuration changes
- Debugging service startup issues
- Monitoring service behavior during development
- Getting immediate feedback after code changes
Best Practices
- Define URLs for your services so that you can command click to open then up from
runnem ls
- If needed, use dependencies to ensure services start in the correct order
- Check logs when services fail to start
- Keep your
runnem.yaml
file in version control - Use
run
andrerun
commands during active development for immediate feedback