Pular para o conteúdo

mprocs - Folha de Dicas para Executar Múltiplos Comandos em Paralelo

mprocs - Folha de Dicas para Executar Múltiplos Comandos em Paralelo

mprocs executa vários comandos de longa duração simultaneamente, cada um em seu próprio painel rotulado com saída e scrollback independentes, controlado a partir de um único TUI. É projetado para a situação comum de dev onde você abriria múltiplos terminais ou splits tmux para executar um servidor frontend, um backend, um watcher e um banco de dados. Você define os processos uma vez em um arquivo de configuração e os inicia todos juntos.

Instalação

PlataformaComando
Cargo (todas as plataformas)cargo install mprocs
macOS (Homebrew)brew install mprocs
npmnpm install -g mprocs
Arch Linux (AUR)yay -S mprocs
Scoop (Windows)scoop install mprocs
Binário pré-construídoDownload da página GitHub Releases

Uso Básico

ComandoDescrição
mprocsComece usando mprocs.yaml no diretório atual
mprocs "npm run dev" "npm run api"Execute comandos ad-hoc como painéis
mprocs -c path/to/mprocs.yamlUse um arquivo de configuração específico
mprocs --names web,api "npm run dev" "cargo run"Nomeie painéis ad-hoc
mprocs --helpLista completa de opções

Configuração (mprocs.yaml)

procs:
  web:
    shell: "npm run dev"
  api:
    shell: "cargo run"
  db:
    shell: "docker compose up postgres"
    autostart: false        # inicie manualmente com a UI
  worker:
    cmd: ["python", "worker.py"]
    cwd: "./backend"
    env:
      LOG_LEVEL: debug
CampoPropósito
shellComando executado através do shell
cmdComando como lista argv (sem análise de shell)
cwdDiretório de trabalho para o processo
envVariáveis de ambiente por processo
autostartSe o processo inicia no lançamento
stopComo pará-lo (SIGTERM, SIGKILL, hard-kill)

Controles de Teclado

TeclaAção
Ctrl+a depois j/kMova a seleção para baixo/acima na lista de processos
Ctrl+a depois sInicie o processo selecionado
Ctrl+a depois xPare o processo selecionado
Ctrl+a depois rReinicie o processo selecionado
Ctrl+a depois aAlterne foco entre lista e painel (interaja com o processo)
Ctrl+a depois cModo de cópia / role a saída do painel
Ctrl+a depois qSaia do mprocs (para todos os processos)
MouseClique em um processo para selecionar; role sua saída

O prefixo padrão é Ctrl+a; é configurável. Pressione o prefixo, solte e a tecla de ação.

Controle Remoto

mprocs pode ser controlado programaticamente, o que é útil a partir de scripts ou tarefas do editor.

# Envie um comando para uma instância mprocs em execução sobre seu socket de controle
mprocs --ctl '{c: restart-proc, proc: web}'

Fluxos de Trabalho Comuns

# Um comando para trazer uma stack local completa definida em mprocs.yaml
mprocs

# Quick throwaway: assista testes e um servidor de dev lado a lado
mprocs --names test,dev "npm test -- --watch" "npm run dev"

# Mantenha o painel do banco de dados presente mas inicie-o apenas quando necessário (autostart: false)

mprocs vs Alternativas

FerramentaModeloMelhor para
mprocsTUI, um painel por processoGrupos de processos dev, configuração simples
tmuxMultiplexador de terminal completoSessões, splits, persistência remota
foreman/overmindExecutores ProcfileGerenciamento de processo baseado em Procfile
GNU parallelParalelismo em loteExecutar muitos trabalhos curtos, não servidores de longa duração

Recursos