杀死所有Gradle守护程序,无论版本如何?

时间:2019-01-14 21:44:47

标签: java gradle gradle-daemon

摘要

我想知道如何杀死机器上运行的每个gradle守护程序和进程,而不管gradle的版本或守护程序的版本如何,但是“ gradle --kill”命令只会停止那些匹配的进程同一版本的gradle。

用例

我的CI构建框将有几个运行不同版本的gradle守护程序(因为我是一个使用包装程序执行构建的好孩子)。有时,我会发现缓存或增量生成的问题,作为预防措施,我喜欢杀死守护程序。尽管我使用的任何VCS或IDE发生冲突的可能性都更大,但对于我的开发箱来说也是如此。

我在寻找什么

  1. 我希望我能缺少一个标志或财产,我可以 通过简单的一行命令传递给gradle来执行此操作,但是如果 很简单,我可以接受更多。
  2. 没有脚本(循环, if-else等)。
  3. 杀死所有Java进程不可接受

4 个答案:

答案 0 :(得分:3)

在Linux下,您可以使用pkill:

pkill -f '.*GradleDaemon.*'

在Windows下,您可以使用wmic:

WMIC PROCESS where "Name like 'java%' AND CommandLine like '%GradleDaemon%'" Call Terminate

PS。为什么可能最简单的解决方案是“不编写脚本”?

答案 1 :(得分:3)

gradle --status命令将为您显示每个守护程序的进程ID。然后,您可以使用操作系统杀死这些进程。

我假设这是跨平台功能,但这是Windows上的输出:

  PID STATUS   INFO
10276 IDLE     5.4.1
14068 IDLE     5.4.1

这比在系统上运行的每个java.exe进程播放打地鼠更好。虽然gradle有一个可以终止所有内置的正在运行的gradle守护程序的命令会很好。

答案 2 :(得分:1)

gradle守护程序3小时后没有消失;这可能是因为我在VirtualBox中以Linux Guest身份运行。

因此,以下内容删除了所有gradle守护程序,但由于它可能过多,因此可能被“皱眉” ...

(1)./gradlew --stop以确保所有守护程序都已停止

(2)删除项目中.gradle文件夹中的所有文件夹/文件

(3)删除/ home / username /中的.gradle文件夹 力奴 (4)重新启动

所有守护程序都消失了。下一个构建花费的时间要长一点,但值得,因为不希望每次启动gradle构建甚至清理都看到6个停止的守护程序。

答案 3 :(得分:0)

我有一个类似的问题,我做了这个:

  1. 转到 C:\Users\"用户名"\.gradle\daemon
  2. 每个版本的 gradle 都有一个文件夹
  3. 删除实际运行版本所在的文件夹 检查 --status