Quando um processo é eliminado, o sinal que o matou é codificado no status de saída recuperado pelo pai (ou subagente filho ou init
para órfãos).
Em bash
, $?
é 128 + signum.
Isso é o que a maioria das shells parecidas com Bourne faz, ksh93 usa 256 + signum, yash 384 + signum.
$?
sendo 129
in bash
significa que o processo foi eliminado pelo sinal 1 (SIGHUP) ou que fez exit(129)
. No entanto, se fizesse um exit(129)
, o mais provável seria relatar uma morte por parte do SIGHUP de algum processo.
Para obter o nome do sinal do valor de $?
, execute:
kill -l "$?"
Isso funciona em todas as shells parecidas com Bourne, quer usem 128/256/384 + signum.
Veja detalhes em Código de saída padrão quando o processo é encerrado?