34
votes

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

4

4 Answers

73
votes

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?

5
votes

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.

2
votes

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.

0
votes

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