История PID процесса

Нет, у Вас не может быть/etc/hosts файла в расчете на пользователя или чего-либо как/home/user1/.hosts, и т.д.

Вы используете gethostbyaddr, который является hardcoded для следования инструкциям в nsswitch.conf, который самом говорит gethostbyaddr смотреть в/etc/hosts.

Вы смогли делать что-то, любят, добавляет дополнительный петлевой дюйм/с в 127.0.0.0/8 сети, как 127.0.0.2, 127.0.0.3, 127.1.2.3, и затем присваивает локальное имя хоста одному из них локальный дюйм/с. Мы сделали это в одном задании, но я помню, что это действительно смутило наших инженеров.

Кроме того, если я помню право, некоторые loadbalancers на самом деле делают это внутренне.

Вот пример/etc/hosts, чтобы проиллюстрировать мой тезис:

    127.0.0.1 u1.localhost u1
    127.0.0.2 u2.localhost u2
    # And if you wanted QA servers on the same host, add them to 127.0.8.0/24
    127.0.8.1 qa1.localhost qa1

Как @blacklotus предложенный ранее, более распространенный способ сделать это должно определять часть Вашей локальной сети как "Разработчик LAN".

3
задан 8 May 2012 в 10:21
4 ответа

Вы МОЖЕТЕ найти это информация в файлах системного журнала / var / log / messages , / var / log / syslog . Некоторые процессы при запуске выводят сообщения в системный журнал. Например, squid выводит следующее:

May  8 00:00:00 proxy squid[7274]: Squid Parent: child process 28819 started

Если ваш процесс регистрирует такую ​​информацию, вы можете знать старые идентификаторы PID, такие как 7274 .

Другая возможность - это случай, когда ваш процесс вызывает ошибку, такую ​​как segfault, когда он умер. Вы найдете такой журнал:

5
ответ дан 3 December 2019 в 04:59

Если приложение не записывает свой PID в файл журнала, вы не сможете получить эту информацию ретроспективно. В дальнейшем вы можете написать сценарий оболочки для запуска вашего приложения и регистрации идентификаторов PID в файле или включить учет.

Простая оболочка может быть

yourcommand &
echo $! >>/path/to/pid_history.log
3
ответ дан 3 December 2019 в 04:59

Если где-то в журнале нет записи об этом (сделано либо самой программой, либо ее стартовым скриптом), получить эту информацию невозможно, так как нет стандартной регистрации этой информации.

1
ответ дан 3 December 2019 в 04:59
# ps ax > /tmp/process.list; for i in `seq 1 600`; do echo $i >> /tmp/plog; date >> /tmp/plog; ps ax | diff /tmp/process.list - >> /tmp/plog; sleep 1; done; ping -a 127.0.0.1

Эта конструкция собирает разницу списка процессов в файл / tmp / plog в течение 10 минут за каждую секунду. После завершения регистрации он отправит вам сигнал с консоли.

Вы можете добавить это в файл rc.local для начала регистрации сразу после запуска сервера.

0
ответ дан 3 December 2019 в 04:59

Теги

Похожие вопросы