Как я могу узнать, какие jar-файлы java в настоящее время запущены (и их PID)?

У меня есть файл .jar, который печально известен для сбоев. Когда происходит сбой, возможен только перезапуск. У меня есть способ обнаружить эти неполадки (чтение лог-файла упомянутого .jar). Поэтому я хочу написать сценарий, который убивает процесс всякий раз, когда происходит сбой. Проблема заключается в следующем:

confus@confusion:~$ ps -A ... 4438 ? 00:00:00 java 4439 ? 00:00:00 java 4443 ? 00:00:00 java ...

Имя процесса для всех запущенных .jar s естественно «java». Как узнать, какой из этих «java» -процессов - тот, который я хочу убить, т. Е. Тот, который работает foobar.jar?

11
задан 15 August 2011 в 13:45

16 ответов

Вы можете запустить команду lsof, в которой перечислены процессы, в которых есть открытые файлы, с файлом jar, указанным в качестве аргумента. Пример просмотра файла с меньшим значением:

egil@mutter:~$ lsof foo.c COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME less 18871 egil 4r REG 8,2 0 53862540 foo.c egil@mutter:~$

Чтобы легко повторно использовать pid в скрипте, вы можете запустить его в сжатом режиме:

egil@mutter:~$ lsof -t foo.c 18871
8
ответ дан 25 July 2018 в 21:53

Вы можете запустить команду lsof, в которой перечислены процессы, в которых есть открытые файлы, с файлом jar, указанным в качестве аргумента. Пример просмотра файла с меньшим значением:

egil@mutter:~$ lsof foo.c COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME less 18871 egil 4r REG 8,2 0 53862540 foo.c egil@mutter:~$

Чтобы легко повторно использовать pid в скрипте, вы можете запустить его в сжатом режиме:

egil@mutter:~$ lsof -t foo.c 18871
8
ответ дан 26 July 2018 в 17:28

Вы можете запустить команду lsof, в которой перечислены процессы, в которых есть открытые файлы, с файлом jar, указанным в качестве аргумента. Пример просмотра файла с меньшим значением:

egil@mutter:~$ lsof foo.c COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME less 18871 egil 4r REG 8,2 0 53862540 foo.c egil@mutter:~$

Чтобы легко повторно использовать pid в скрипте, вы можете запустить его в сжатом режиме:

egil@mutter:~$ lsof -t foo.c 18871
8
ответ дан 31 July 2018 в 10:48

Вы можете запустить команду lsof, в которой перечислены процессы, в которых есть открытые файлы, с файлом jar, указанным в качестве аргумента. Пример просмотра файла с меньшим значением:

egil@mutter:~$ lsof foo.c COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME less 18871 egil 4r REG 8,2 0 53862540 foo.c egil@mutter:~$

Чтобы легко повторно использовать pid в скрипте, вы можете запустить его в сжатом режиме:

egil@mutter:~$ lsof -t foo.c 18871
8
ответ дан 31 July 2018 в 11:52

Вы можете запустить команду lsof, в которой перечислены процессы, в которых есть открытые файлы, с файлом jar, указанным в качестве аргумента. Пример просмотра файла с меньшим значением:

egil@mutter:~$ lsof foo.c COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME less 18871 egil 4r REG 8,2 0 53862540 foo.c egil@mutter:~$

Чтобы легко повторно использовать pid в скрипте, вы можете запустить его в сжатом режиме:

egil@mutter:~$ lsof -t foo.c 18871
8
ответ дан 2 August 2018 в 03:28

Вы можете запустить команду lsof, в которой перечислены процессы, в которых есть открытые файлы, с файлом jar, указанным в качестве аргумента. Пример просмотра файла с меньшим значением:

egil@mutter:~$ lsof foo.c COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME less 18871 egil 4r REG 8,2 0 53862540 foo.c egil@mutter:~$

Чтобы легко повторно использовать pid в скрипте, вы можете запустить его в сжатом режиме:

egil@mutter:~$ lsof -t foo.c 18871
8
ответ дан 4 August 2018 в 19:25

Вы можете запустить команду lsof, в которой перечислены процессы, в которых есть открытые файлы, с файлом jar, указанным в качестве аргумента. Пример просмотра файла с меньшим значением:

egil@mutter:~$ lsof foo.c COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME less 18871 egil 4r REG 8,2 0 53862540 foo.c egil@mutter:~$

Чтобы легко повторно использовать pid в скрипте, вы можете запустить его в сжатом режиме:

egil@mutter:~$ lsof -t foo.c 18871
8
ответ дан 6 August 2018 в 03:36

Вы можете запустить команду lsof, в которой перечислены процессы, в которых есть открытые файлы, с файлом jar, указанным в качестве аргумента. Пример просмотра файла с меньшим значением:

egil@mutter:~$ lsof foo.c COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME less 18871 egil 4r REG 8,2 0 53862540 foo.c egil@mutter:~$

Чтобы легко повторно использовать pid в скрипте, вы можете запустить его в сжатом режиме:

egil@mutter:~$ lsof -t foo.c 18871
8
ответ дан 7 August 2018 в 21:26

Использование ps ax поможет.

Он отобразит дерево процессов в стиле BSD, который просто показывает путь дополнительной информации.

Чтобы найти ваш конкретный процесс, вам просто нужно grep для имени JAR. ps ax | grep JARNAME сделает это.

6
ответ дан 25 July 2018 в 21:53

Использование ps ax поможет.

Он отобразит дерево процессов в стиле BSD, который просто показывает путь дополнительной информации.

Чтобы найти ваш конкретный процесс, вам просто нужно grep для имени JAR. ps ax | grep JARNAME сделает это.

6
ответ дан 26 July 2018 в 17:28

Использование ps ax поможет.

Он отобразит дерево процессов в стиле BSD, который просто показывает путь дополнительной информации.

Чтобы найти ваш конкретный процесс, вам просто нужно grep для имени JAR. ps ax | grep JARNAME сделает это.

6
ответ дан 31 July 2018 в 10:48

Использование ps ax поможет.

Он отобразит дерево процессов в стиле BSD, который просто показывает путь дополнительной информации.

Чтобы найти ваш конкретный процесс, вам просто нужно grep для имени JAR. ps ax | grep JARNAME сделает это.

6
ответ дан 31 July 2018 в 11:52

Использование ps ax поможет.

Он отобразит дерево процессов в стиле BSD, который просто показывает путь дополнительной информации.

Чтобы найти ваш конкретный процесс, вам просто нужно grep для имени JAR. ps ax | grep JARNAME сделает это.

6
ответ дан 2 August 2018 в 03:28

Использование ps ax поможет.

Он отобразит дерево процессов в стиле BSD, который просто показывает путь дополнительной информации.

Чтобы найти ваш конкретный процесс, вам просто нужно grep для имени JAR. ps ax | grep JARNAME сделает это.

6
ответ дан 4 August 2018 в 19:25

Использование ps ax поможет.

Он отобразит дерево процессов в стиле BSD, который просто показывает путь дополнительной информации.

Чтобы найти ваш конкретный процесс, вам просто нужно grep для имени JAR. ps ax | grep JARNAME сделает это.

6
ответ дан 6 August 2018 в 03:36

Использование ps ax поможет.

Он отобразит дерево процессов в стиле BSD, который просто показывает путь дополнительной информации.

Чтобы найти ваш конкретный процесс, вам просто нужно grep для имени JAR. ps ax | grep JARNAME сделает это.

6
ответ дан 7 August 2018 в 21:26

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

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