Kill all Gradle Daemons Regardless Version?
JavaGradleGradle DaemonJava Problem Overview
Summary
I would like to know how to kill every single gradle daemon and process running on a machine regardless of the version of gradle or the version of the daemon, but the "--kill" or "--stop" command will only stop those processes that match the same version of gradle.
Use case
My CI build box will have several gradle daemons running with different versions (because I'm a good boy that uses the wrapper to execute builds). Occasionally I will find issues with caching or incremental builds, and as a precaution I like to kill the daemons. The same is true for my development boxes, although the conflicts are more often with whichever VCS or IDE I am using.
What I am looking for
- I'm hoping there is a flag or property I am missing that I could pass to gradle to do this in a simple one line command, but if it's simple enough I would be ok with more.
- No scripting (looping, if-else etc).
- Killing all java processes is not acceptable.
Helpful links to the gradle docs
Java Solutions
Solution 1 - Java
Under linux you may use pkill:
pkill -f '.*GradleDaemon.*'
Under windows you may use wmic:
WMIC PROCESS where "Name like 'java%' AND CommandLine like '%GradleDaemon%'" Call Terminate
PS. Why "no scripting" when it is probably the easiest solution?
Solution 2 - Java
The gradle daemons did not disappear after 3hrs; this could be since I am running as Linux Guest in VirtualBox.
And hence, the following removes all gradle daemons but it could be "frowned upon" since it might be excessive...
(1) ./gradlew --stop to ensure all daemons are stopped
(2) delete all folders/files in .gradle folder in the project
(3) delete .gradle folder in /home/username/ Linu (4) reboot
All daemons are gone. The next build takes a bit longer but worthwhile as do not like seeing 6 stopped daemons everytime a gradle build or even clean is started.
Solution 3 - Java
The gradle --status
command will show you the process ids for each of the daemons. You can then use your OS to kill those processes.
I'm assuming this is cross-platform functionality, but this is the output on Windows:
PID STATUS INFO
10276 IDLE 5.4.1
14068 IDLE 5.4.1
It's a bit better than playing whack-a-mole with every java.exe process running on your system. Although it would be nice if gradle had a command that could terminate all running gradle daemons built-in.
Solution 4 - Java
I have a similar problem and I made this:
- Go To C:\Users\"Username"\.gradle\daemon
- There are a Folder for each version of gradle
- Delete the folder of your actual running version Check with --status