Identificação do processo
Pergunta
Digamos que eu tenha 15 processos/daemons em segundo plano. Digamos que um dos processos despejou o núcleo.
Como eu poderia identificar qual processo despejou o núcleo.
Estou usando o HPux!
Solução
1) Se os processos tiverem o mesmo nome, acho que você deve executá -los de diferentes pastas. Se um processo despejar um núcleo, você o obterá em sua pasta. Não sei como você os inicia. Se você usar &
Para iniciar um processo, então você pode usar $!
Para obter o PID do último processo de daemon iniciado e, assim, salve o PID do processo em sua pasta. Ou você pode dar uma olhada no log do seu daemon nesta pasta e obter o PID do processo nesta pasta a partir daí.
2) Se você executar aplicativos diferentes, você pode usar file ./core
Para descobrir o nome do aplicativo.
Atualizada:3) Acabei de ler sobre isso:
Corra primeiro coreadm -p core.%p.%f.%t.%n
Ou coloque este comando em seu perfil. E então, se um aplicativo coredumps, você verá um arquivo principal com nome core.<PID>.<Application-Name>.<Timestamp>.<Server>
. Por exemplo: core.29305.main.1278939422:531259.srv2-rx8
Outras dicas
Ele pode escrever o PID como parte do nome do arquivo. Não sei o que ou como você inicia seus 15 processos, mas é comum armazenar o PID. Os daemons geralmente criam seu próprio arquivo PID com algo que identifica a instância.
Deve estar no arquivo de índice gerado durante o despejo. O HPUX 10.26 (realmente antigo) manteve os lixões em:
/var/adm/crash
Você precisará de Q4 ou uma ferramenta semelhante para investigar o despejo. Para definir o padrão como Epronk sugeriu, você precisará coreadm. Consulte as páginas manuais:
man coreadm