Убейте только один процесс Java

Обычно я запускаю несколько приложений Java, один для сервера, работающего локально, и другого для некоторых IDE, таких как NetBeans. И время от времени, после множества повторных развертываний, мой сервер застревает в OutOfMemoryException, поэтому мне нужно убить Java-процесс для перезагрузки.

Поэтому я делаю pkill -9 java но это также убивает мою текущую IDE, которой я не хочу. Итак, как я могу убить только приложение, связанное с работающим сервером, а не с другими? Я предполагаю, что все они работают под одним и тем же процессом, но должен быть каким-то образом, как устрашить их.

  • Безопасное уничтожение процесса переднего плана при завершении фонового процесса
  • Как остановить бесконечный запущенный процесс (ztail), запущенный сеансом ssh после закрытия этого сеанса
  • Как создать псевдоним, чтобы убивать процессы, запущенные на порту TCP / IP?
  • использование sudo создает другой процесс
  • Убийство PGIDs, но proceses возрождаются, как я могу сделать это постоянным?
  • В чем разница между kill, pkill и killall
  • pgrep и pkill альтернативы на mac os x?
  • убить несколько процессов с помощью awk-инструментов
  • 3 Solutions collect form web for “Убейте только один процесс Java”

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

    Чтобы получить идентификатор процесса в этом java-процессе

     ps -A |grep java 

    вывод этой команды даст список java-процессов, запущенных в вашей системе. Запишите идентификатор процесса (PID) этого процесса, которого вы хотите убить и запустить

     kill -9 PID 

    ИМО лучшим решением является:

     pkill -9 -f <nameOfYourJavaAplication> 

    Вместо использования ps и grep вы можете использовать ps -c-флаг ps для выбора всех команд, перечисленных с именем «java». Вы также можете использовать флагом ps -f для печати полного имени команды для каждого перечисленного процесса. Таким образом, вы можете видеть, что делает каждый процесс Java. Вот полная команда: ps -fC java .

    Вы также можете использовать pgrep для перечисления всех java-процессов. pgrep -a java вернет PID и полную командную строку каждого java-процесса.

    Если у вас есть PID команды, которую вы хотите убить, используйте kill с флагом -9 (SIGKILL) и PID процесса Java, который вы хотите убить. Java не всегда останавливается, когда получает сигнал «SIGTERM» (процессам разрешено обрабатывать «SIGTERM»), поэтому отправка сигнала «SIGKILL», который заставляет init убивать программу без предварительного предупреждения, часто требуется.

    Например, если ps -fC java возвращается

     UID PID PPID C STIME TTY TIME CMD jeff 9014 8890 0 08:51 pts/0 00:00:00 java IDE jeff 11775 8890 6 08:59 pts/0 00:00:00 java TestProgram 

    или psgrep -a java возвращает psgrep -a java

     9014 java IDE 11775 java TestProgram 

    и вы хотите убить java TestProgram , вы должны запустить kill -9 11775 .

    Interesting Posts

    Командная строка: обрезать PDF до размера бумаги (Fedora)

    iconv не может преобразовать числа с кругом в / из японских кодировок

    Tmux – Получить панель # каждой панели в окне из сценария?

    Linux Mint – внешний привод, заставляющий мою файловую систему выглядеть полностью и давая мне ошибку «без пробелов на устройстве»

    Linux Mint Панель задач и значки исчезли

    Список пакетов, доступных для обновления с помощью APT?

    Математическое соединение между SZ RSS и VSZ в ps o / p?

    Aptitude хочет удалить тонны пакетов

    разрешение bash отклонено, но sh works

    Как передать значение, которое должно быть в кавычках для команды?

    YUM не разрешает зависимость с требованием для более старой версии

    Переключатель Qubes OS из Windows

    Должен ли я взять на себя права собственности / media, / mnt и / opt или присоединиться к группе root?

    Мой ~ / .Xresources отключает антиалиасинг gtk

    в i3wm, как я могу установить макет по умолчанию для всех рабочих пространств

    Linux и Unix - лучшая ОС в мире.