Как однозначно идентифицировать процесс java после многократного перезапуска - PullRequest
1 голос
/ 17 февраля 2020

У меня есть номер java процесса, запущенного на моей машине. Мне нужно отследить, сколько раз каждый процесс перезапускается.

Например: рассмотрим два процесса java Процесс 1 - он перезапускается 5 раз. Процесс 2 - он перезапускается 2 раза.

Я могу получить команду PID, java запущенных процессов. Но я не мог различить, как только процесс возобновился. Потому что PID изменился после перезагрузки. Также я не могу рассмотреть команду java, потому что два экземпляра одного и того же приложения имеют одинаковую команду.

Итак, каковы другие способы отслеживания перезапуска процесса java?

1 Ответ

0 голосов
/ 18 февраля 2020

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

Как вы утверждаете в вопросе, этот идентификатор нельзя передать в командной строке. Таким образом, процесс должен «найти» свою идентичность путем приобретения эксклюзивного ресурса.

Этот ресурс может быть общей системой, реализующей блокировки, но, вероятно, он сложен.

В качестве эксклюзивных ресурсов мы есть сетевые розетки. Таким образом, вы можете сделать свои процессы искусственно открывающими сокет с единственной целью, чтобы заставить его получить идентичность.

Вы можете использовать код из { ссылка }, чтобы открыть сокет в спектр. Идентификацией процесса является порт, который можно открыть.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...