strongloop / node-foreman

A Node.js Version of Foreman
http://strongloop.github.io/node-foreman/
Other
1.27k stars 119 forks source link

Spawn children in their own process groups, and deliver SIGINT to each group #177

Open benweint opened 11 months ago

benweint commented 11 months ago

This change fixes the issue described in https://github.com/strongloop/node-foreman/issues/176 by:

  1. Making nf spawn each child process in its own distinct process group via the detached option
  2. Delivering SIGINT signals to children to the entire process group, rather than just the direct child
  3. Ensuring that nf can handle the delivery of multiple consecutive SIGINT signals to itself without exiting prematurely

Changes 1 & 2 are inspired by the approach taken by goreman (a similar tool implemented in Go). Change 3 is somewhat unrelated, but was added in order to deal with the problem described in https://github.com/pnpm/pnpm/issues/7374 (sometimes, a parent process of nf might itself forward a SIGINT to nf, and the terminal might also deliver that signal).

pboling commented 8 months ago

@benweint Would you be willing to push up a your fork to npm, appropriately renamed? This is an important project!

StrongLoop is totally dead, and their most popular tech (Loopback) appears to live on (after being acquired?) as a distinct organization. I don't think there is any hope of this repo getting any more attention... :(

pboling commented 8 months ago

Perhaps foreman-ode... it works on multiple levels.