Lidando com a Terminação de Processos Filhos em Aplicações de Terminal

2025-07-31
Lidando com a Terminação de Processos Filhos em Aplicações de Terminal

Quando um aplicativo de terminal que gera processos filhos não sai corretamente após um Ctrl+C, o terminal fica corrompido. Este artigo, usando o Moose CLI como exemplo, detalha soluções. As principais estratégias incluem: 1. Proxy de saída de processo: Redirecionar stdout/stderr do processo filho para um sistema de log, isolando-o do terminal; 2. Gerenciamento de estado do terminal: Limpar explicitamente o estado do terminal (modo bruto, buffer de tela alternativo, visibilidade do cursor) usando o crossterm para consistência entre plataformas na saída; 3. Terminação de processo suave: Tentar desligamento suave com SIGTERM, depois SIGKILL com timeouts; 4. Gerenciamento de spinner seguro para threads: Coordenar spinners e saída de processo filho para evitar corrupção de exibição. Essas estratégias constroem aplicativos de terminal robustos, evitando danos frustrantes ao terminal causados por processos filhos.

Leia mais
Desenvolvimento processos filhos