摘要
我想知道如何杀死机器上运行的每个gradle守护程序和进程,而不管gradle的版本或守护程序的版本如何,但是“ gradle --kill”命令只会停止那些匹配的进程同一版本的gradle。
用例
我的CI构建框将有几个运行不同版本的gradle守护程序(因为我是一个使用包装程序执行构建的好孩子)。有时,我会发现缓存或增量生成的问题,作为预防措施,我喜欢杀死守护程序。尽管我使用的任何VCS或IDE发生冲突的可能性都更大,但对于我的开发箱来说也是如此。
我在寻找什么
答案 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)
我有一个类似的问题,我做了这个: