srs / gradle-node-plugin

Gradle plugin for integrating NodeJS in your build. :rocket:
Apache License 2.0
867 stars 210 forks source link

CTRL+C does not kill underlying nodejs server #339

Open Globegitter opened 5 years ago

Globegitter commented 5 years ago

I am having a simple app created with https://github.com/facebook/create-react-app that I am using with this plugin. To start it I am running gradle yarn_run_start which starts a nodejs dev server with hot module reload etc. That all works fine, but when I exit out of it via CTRL+C and then later start the server again it reproducibly complains that the port is still open, i.e. the server was not killed through CTRL+C - I suppose SIGINT is not propagated correctly? Is there a way to make sure this happens?

nahue commented 4 years ago

Any ideas? i can work on a solution but i dont know where to start looking.

mmayer1 commented 4 years ago

May just be a generic gradle issue with no good solution (other than maybe using --no-daemon flag) https://discuss.gradle.org/t/exec-task-and-killing-processes/6189 a docker plugin has same issue as well https://github.com/gradle/gradle/issues/8025

nahue commented 4 years ago

Indeed.. adding --no-daemon solves the issue. It seems that the node server thread is managed by the gradle daemon.. and stopping the task is not enough to kill it

rsampaths16 commented 2 years ago

I've got a similar issue in Java - shutdownhook isn't called

https://stackoverflow.com/questions/64195246/how-to-send-ctrlc-sigint-signal-to-gradle-javaexec-task-type-forked-jvm