Идентификация процесса
Допустим, у меня есть 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-файл с чем-то, что идентифицирует экземпляр.