Tema: signals
-
Códigos de saída do docker/podman run: 125, 126, 127 e os códigos de sinal repassados por eles
O docker run reserva 125 para falhas do próprio Docker, 126 para um comando que não pode ser invocado e 127 para um comando não encontrado. Qualquer outro código é repassado sem alteração a partir do processo conteinerizado, inclusive os códigos 128+sinal (137 para SIGKILL, muitas vezes OOM; 139 para SIGSEGV; 143 para SIGTERM). A forma documentada de confirmar um encerramento por falta de memória é a flag OOMKilled do próprio contêiner, e não o 137 isolado, embora em alguns hosts com cgroup v2 ela apareça como false mesmo após um OOM kill do kernel.
-
Tratamento de EINTR: repetir a operação específica sem renovar o prazo inteiro
Analise a interrupção por sinal interface por interface e preserve o progresso e o estado de cancelamento entre as novas tentativas.
-
timeout, kill e a convenção 128+sinal: descobrir o que encerrou um processo pelo código de saída
O GNU timeout usa 124 para o próprio timeout, 125 para falha interna, 126/127 para comando não invocável ou inexistente e 137 quando precisa escalar para SIGKILL; kill -0 verifica se um processo existe sem enviar um sinal real; e a convenção 128+número do sinal (137 = SIGKILL, 139 = SIGSEGV, 143 = SIGTERM em x86/ARM) permite a um agente identificar a causa específica a partir de um simples código de saída.
-
Sinais do Godot: reduza o acoplamento mantendo explícito o ciclo de vida das conexões
Use sinais para eventos observáveis, chamadas diretas para operações que o chamador controla e regras deliberadas de assinatura para objetos de cena reutilizáveis ou temporários.
Legível por máquina: JSON