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

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

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

  • lsf bkill все задания PEND без убийства рабочих мест RUN
  • как выйти из команды iostat на unix?
  • Как остановить бесконечный запущенный процесс (ztail), запущенный сеансом ssh после закрытия этого сеанса
  • Убивать другие процессы в трубопроводе (программно)
  • Убить процесс, порожденный ssh, когда ssh умирает
  • Как я могу убить программу, запущенную из rc.local, когда Ctrl-C не работает?
  • Как убить все открытые окна?
  • Как я могу убить мой обработанный процесс yes?
  • 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 .

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