Se um processo não gravar em um terminal, mas usar o redirecionamento (ou mesmo quando escrever explicitamente em um arquivo), o buffer pode ser um problema. Dê uma olhada em stdbuf
e unbuffer
( expect
) ou procure aqui por eles.
Seu problema tcpdump
pode ser resolvido (ou reduzido) pelo sinalizador -U
.
Em geral, você deve matar assim:
kill $PID; sleep $wait; kill -9 $pid &>/dev/null
kill
/ kill -TERM
dá ao processo a chance de terminar de forma limpa (incluindo, por exemplo, liberar buffers e fechar descritores de arquivo) enquanto kill -KILL
apenas remove o processo da memória e da lista de processos que é sempre um risco com operações atômicas que podem estar em andamento imediatamente.