Ir al contenido

mprocs - Hoja de Referencia de Ejecución de Múltiples Comandos en Paralelo

mprocs - Hoja de Referencia de Ejecución de Múltiples Comandos en Paralelo

mprocs ejecuta varios comandos de larga duración a la vez, cada uno en su propio panel etiquetado con salida y scrollback independientes, controlados desde una única TUI. Está diseñado para la situación común de desarrollo donde de otro modo abrirías múltiples terminales o splits de tmux para ejecutar un servidor frontend, un backend, un watcher y una base de datos. Define los procesos una vez en un archivo de configuración e inícialos todos juntos.

Instalación

PlataformaComando
Cargo (todas las plataformas)cargo install mprocs
macOS (Homebrew)brew install mprocs
npmnpm install -g mprocs
Arch Linux (AUR)yay -S mprocs
Scoop (Windows)scoop install mprocs
Binario precompiladoDescarga desde la página de GitHub Releases

Uso Básico

ComandoDescripción
mprocsComienza usando mprocs.yaml en el directorio actual
mprocs "npm run dev" "npm run api"Ejecuta comandos ad-hoc como panels
mprocs -c path/to/mprocs.yamlUsa un archivo de configuración específico
mprocs --names web,api "npm run dev" "cargo run"Nombra panels ad-hoc
mprocs --helpLista completa de opciones

Configuración (mprocs.yaml)

procs:
  web:
    shell: "npm run dev"
  api:
    shell: "cargo run"
  db:
    shell: "docker compose up postgres"
    autostart: false        # inicia manualmente con la UI
  worker:
    cmd: ["python", "worker.py"]
    cwd: "./backend"
    env:
      LOG_LEVEL: debug
CampoPropósito
shellComando ejecutado a través del shell
cmdComando como una lista argv (sin análisis de shell)
cwdDirectorio de trabajo para el proceso
envVariables de entorno por proceso
autostartSi el proceso inicia al lanzar
stopCómo detenerlo (SIGTERM, SIGKILL, hard-kill)

Controles de Teclado

TeclaAcción
Ctrl+a luego j/kMueve selección hacia arriba/abajo en la lista de procesos
Ctrl+a luego sInicia el proceso seleccionado
Ctrl+a luego xDetiene el proceso seleccionado
Ctrl+a luego rReinicia el proceso seleccionado
Ctrl+a luego aAlterna enfoque entre lista y panel (interactúa con el proceso)
Ctrl+a luego cModo copia / desplaza la salida del panel
Ctrl+a luego qSale de mprocs (detiene todos los procesos)
RatónHaz clic en un proceso para seleccionar; desplaza su salida

El prefijo predeterminado es Ctrl+a; es configurable. Presiona el prefijo, suelta, luego la tecla de acción.

Control Remoto

mprocs puede ser controlado programáticamente, lo que es útil desde scripts o tareas del editor.

# Envía un comando a una instancia de mprocs en ejecución sobre su socket de control
mprocs --ctl '{c: restart-proc, proc: web}'

Flujos de Trabajo Comunes

# Un comando para traer un stack local completo definido en mprocs.yaml
mprocs

# Rápido de usar y tirar: ve pruebas y un servidor de desarrollo lado a lado
mprocs --names test,dev "npm test -- --watch" "npm run dev"

# Mantén el panel de base de datos presente pero inícialos solo cuando sea necesario (autostart: false)

mprocs vs Alternativas

HerramientaModeloMejor para
mprocsTUI, un panel por procesoGrupos de procesos dev, configuración simple
tmuxMultiplexor de terminal completoSesiones, splits, persistencia remota
foreman/overmindRunners de ProcfileGestión de procesos basada en Procfile
GNU parallelParalelismo por lotesEjecutar muchos trabajos cortos, no servidores de larga duración

Recursos