Sair do status no dump principal

5

Quando um processo despeja o núcleo, ele define algum código de saída específico? Alternativamente, existe uma maneira de detectar se o core foi descartado em um script de shell.

Eu tenho um script de shell que dispara um trabalho que ocasionalmente despeja o núcleo. Se meu job despejar o núcleo, eu gostaria de modificar o script de shell para que as próximas linhas possam verificar o status e informar aos outros interessados que o job foi descartado.

Salvamos os core dumps e os analisamos. Isso agora é feito pelo simples comando find. Se eu puder verificar se uma das linhas do meu shell script causou o core dump, posso diagnosticar os problemas muito mais rápido.

No Ubuntu 12.04.

    
por user871199 06.08.2014 / 01:57

1 resposta

5

Na prática, um dump de núcleo será automaticamente produzido quando o processo é terminado por algum sinal, e o código de saída será determinado pelo sinal (128 + signal_value), e no Linux, os sinais podem ser pelo menos: SIGQUIT (3), SIGILL (4), SIGABRT (6), SIGFPE (8), SIGSEGV (11). Veja a página do manual signal (7) para uma lista mais completa. Um dump de núcleo nem sempre será produzido; veja algumas circunstâncias na página man core (5).

Nota: Em idiomas que têm acesso total à chamada do sistema wait (mas este não é o caso dos scripts shell POSIX), você pode usar WCOREDUMP (disponível no Linux), que retorna true se o filho produziu um dump de core. Veja a página man wait (2) para mais informações.

    
por 06.08.2014 / 02:22