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:

  1. Check for port conflicts
  2. Start services in dependency order
  3. Wait for dependent services to be ready
  4. 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:

  1. Stop the specified service(s)
  2. 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:

  1. Stop the specified service(s) (if running)
  2. Wait briefly to ensure complete shutdown
  3. Start the service(s) again
  4. 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:

  1. Attach to the service's screen session
  2. Show the service's output
  3. Allow you to scroll through the logs
  4. 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:

  1. Find any process using port 3000
  2. Kill the process
  3. 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 logs
  • runnem 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

  1. Define URLs for your services so that you can command click to open then up from runnem ls
  2. If needed, use dependencies to ensure services start in the correct order
  3. Check logs when services fail to start
  4. Keep your runnem.yaml file in version control
  5. Use run and rerun commands during active development for immediate feedback
Previous
Quickstart