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!

Foi útil?

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
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top