【问题标题】:Java process is not killed after stopping Debug in Intellij在 Intellij 中停止调试后 Java 进程没有被杀死
【发布时间】:2022-01-20 01:49:31
【问题描述】:

我有一个使用 Gradle 构建的 Java 项目。我正在使用 IntelliJ IDEA 2021.3(社区版)。当我单击调试时,它会创建一个 Java 进程。但是当我点击停止时它不会终止这个过程。因此,每次我单击调试时,Java 进程都会不断累积。此外,在活动监视器中,每次都会出现一个新的无名进程,父进程作为 IntelliJ 的想法。此外,在停靠栏/任务栏中,Java 进程会累积。

调试前 -

% ps -fea | grep java
  503   509 97339   0  7:07PM ttys002    0:00.00 grep java
% 

经过 2 个调试和停止周期(这可以更多。例如只有 2 个)-

% ps -fea | grep java
  503 90731 82751   0  5:18PM ??         0:27.31 /Users/name/Library/Java/JavaVirtualMachines/azul-15.0.5/Contents/Home/bin/java -XX:MaxMetaspaceSize=256m -XX:+HeapDumpOnOutOfMemoryError -agentlib:jdwp=transport=dt_socket,server=n,suspend=y,address=127.0.0.1:61543 --add-opens java.base/java.util=ALL-UNNAMED --add-opens java.base/java.lang=ALL-UNNAMED --add-opens java.base/java.lang.invoke=ALL-UNNAMED --add-opens java.prefs/java.util.prefs=ALL-UNNAMED -Xms256m -Xmx512m -Dfile.encoding=UTF-8 -Duser.country=US -Duser.language=en -Duser.variant -cp /Users/akashravi.vasishta/.gradle/wrapper/dists/gradle-6.9-workday-1-bin/5xnutbozhlaeef1xb3yswps8s/gradle-6.9/lib/gradle-launcher-6.9.jar org.gradle.launcher.daemon.bootstrap.GradleDaemon 6.9
  503 90802 82751   0  5:24PM ??         0:18.60 /Users/name/Library/Java/JavaVirtualMachines/azul-15.0.5/Contents/Home/bin/java -XX:MaxMetaspaceSize=256m -XX:+HeapDumpOnOutOfMemoryError -agentlib:jdwp=transport=dt_socket,server=n,suspend=y,address=127.0.0.1:61580 --add-opens java.base/java.util=ALL-UNNAMED --add-opens java.base/java.lang=ALL-UNNAMED --add-opens java.base/java.lang.invoke=ALL-UNNAMED --add-opens java.prefs/java.util.prefs=ALL-UNNAMED -Xms256m -Xmx512m -Dfile.encoding=UTF-8 -Duser.country=US -Duser.language=en -Duser.variant -cp /Users/akashravi.vasishta/.gradle/wrapper/dists/gradle-6.9-workday-1-bin/5xnutbozhlaeef1xb3yswps8s/gradle-6.9/lib/gradle-launcher-6.9.jar org.gradle.launcher.daemon.bootstrap.GradleDaemon 6.9
% 

我必须手动杀死这两个进程。首先,这两个进程是 JVM 进程吗?如果不是,它们是什么?在我的代码中,我还创建了一个 Jetty 服务器,是这样吗?即使它是 Jetty 服务器,当我停止调试时它不应该被杀死吗?停止调试时如何杀死这些 Java 进程?

附:活动监视器图像和 $ps 输出不同,因为屏幕截图是在不同时间截取的。

【问题讨论】:

  • 尝试启用Settings/Preferences | Build, Execution, Deployment | Debugger | Kill the debug process immediately。如果问题仍然存在,请通过youtrack.jetbrains.com/issues/IDEAintellij-support.jetbrains.com/hc/en-us/requests/new 报告问题
  • 试过“立即终止调试进程”。没用。但是我在 Eclipse 上为同一个项目尝试了调试模式,当停止时,一切都停止了,没有留下任何 Java 进程。

标签: java gradle intellij-idea


【解决方案1】:

你可以使用下面的命令来杀死你所有的java进程,

sudo kill $(ps aux | grep -i java | awk '{print $2}')

【讨论】:

  • 这将完成这项工作,但我不想要另一个手动解决方案。我希望它自动发生或通过代码发生,也许是 gradle ?或者可能是智能?
  • 也许你可以编写一个自定义的 shell 脚本,然后在你的构建 gradle 文件中完成所有执行后运行这个命令!另外,如果对您有帮助,请将其标记为正确答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-06
  • 1970-01-01
相关资源
最近更新 更多