Kill all Gradle Daemons Regardless Version?

JavaGradleGradle Daemon

Java 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

  1. 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.
  2. No scripting (looping, if-else etc).
  3. Killing all java processes is not acceptable.

Helpful links to the gradle docs

Disabling the Daemon

Stopping an existing Daemon

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:

  1. Go To C:\Users\"Username"\.gradle\daemon
  2. There are a Folder for each version of gradle
  3. Delete the folder of your actual running version Check with --status

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionPytryView Question on Stackoverflow
Solution 1 - JavaNikita TukkelView Answer on Stackoverflow
Solution 2 - JavabarnwaldoView Answer on Stackoverflow
Solution 3 - JavaCypherView Answer on Stackoverflow
Solution 4 - JavaLic. Sebastian TorralbaView Answer on Stackoverflow