Идентификация процесса

Допустим, у меня есть 15 процессов / демонов, работающих в фоновом режиме. скажем, один из процессов сбросил ядро.

Как я могу определить, какой процесс сбросил ядро.

я использую hpux!

3 ответа

Решение

1) Если процессы имеют одинаковое имя, я думаю, что вы должны запускать их из разных папок. Если процесс выбрасывает ядро, вы получите его в своей папке. Я не знаю, как вы их начинаете. Если вы используете & чтобы начать процесс, то вы можете использовать $! получить PID последнего запущенного процесса демона и, таким образом, сохранить PID процесса в его папке. Или вы можете взглянуть на журнал вашего демона в этой папке и получить PID процесса в этой папке оттуда.

2) Если вы запускаете разные приложения, вы можете использовать file ./core узнать название приложения.

Обновлено:3) Только что прочитал об этом:

Беги первым coreadm -p core.%p.%f.%t.%n или поместите эту команду в своем профиле. И тогда, если приложение coredumps вы увидите файл ядра с именем core.<PID>.<Application-Name>.<Timestamp>.<Server>, Например: core.29305.main.1278939422:531259.srv2-rx8

Это должно быть в индексном файле, созданном во время дампа. HPUX 10.26 (действительно старый) сохранил дампы в:

 /var/adm/crash

Вам понадобится q4 или аналогичный инструмент для исследования дампа. Чтобы установить шаблон в соответствии с предложением epronk, вам понадобится coreadm. Обратитесь к страницам руководства:

  man coreadm

Он может написать pid как часть имени файла. Я не знаю, что или как вы запускаете ваши 15 процессов, но это обычно хранить pid. Демоны обычно создают свой собственный pid-файл с чем-то, что идентифицирует экземпляр.

Другие вопросы по тегам