GoogleCloudPlatform / gradle-appengine-plugin

Gradle plugin that provides tasks for uploading, running and managing Google App Engine projects
Apache License 2.0
236 stars 60 forks source link

Stop `appengineRun` without killing gradle daemon #248

Open mitchhentges opened 8 years ago

mitchhentges commented 8 years ago

To stop the appengine devserver, I've been using CTRL-C. This stops the devserver, but also kills the gradle daemon, which means that everything takes a while to start back up again.

Is there a keyboard shortcut or method to stop the appengine devserver without killing gradle?

loosebazooka commented 8 years ago

You can run the appengineStop task from another terminal?

If that doesn't work (I don't know why it wouldn't) and you're on a linux machine, you can find the process that's using the port the dev appserver was started on, for instance on port 8080

$ lsof -i:8080
COMMAND   PID USER   FD   TYPE   DEVICE SIZE/OFF NODE NAME                                           
java    25708 bob   35u  IPv6 264550      0t0  TCP localhost:http-alt (LISTEN)                    │functionalTest  main

$ kill 25708

This looks like it kills the server without killing the daemon.

mitchhentges commented 8 years ago

For the sake of convenience, is it possible to make the appengineRun task swallow CTRL-C and exit "sucessfully", or have a different keyboard combo like CTRL-D to do that? appengineStop works great though, thanks! It's just a little bit more "remember" overhead, which would be great to not have to worry about.

loosebazooka commented 8 years ago

The keyboard shortcuts is something we don't control unfortunately.

mitchhentges commented 8 years ago

Can the plugin/task control the handling of signals? I think that, in Linux, CTRL-C is SIGINT, and CTRL-D is some sort of end-of-file delimiter. I want to believe :wink:

chrisjenx commented 6 years ago

Actually it's worse than that now. CTRL-C will kill the gradle service but the java process it spawned lives on so you'll need to kill the java instance separately.