-
Notifications
You must be signed in to change notification settings - Fork 633
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Run processes in new process groups, kill process group instead of process #780
base: main
Are you sure you want to change the base?
Conversation
Some processes are getting orphaned when running Foreman with JRuby. Creating a new pgroup allows them all to be killed together. I believe the issue is related to how JRuby handles `Dir.chdir` by creating a shell process: `sh -c 'cd /chdir/target; ${command}'`. That causes a second process to be created that won't get cleaned up by killing the parent.
cc @ddollar this is my only day to day pain with foreman. Would love getting this get merged. |
@domenkozar I think it's time to fork and release a new gem. The issue this PR addresses drives me nuts as well and it's getting close to a year for a branch with no conflicts. |
I maintain way too many OSS projects, but if you decide to go for it, I'm happy to test. |
Ping @ddollar |
foreman forked: https://github.com/spinels/overman, https://rubygems.org/gems/overman The published version is current master (a5f9b78) + this PR. The executable is called Please try it! |
This PR makes it better, but it's not enough, see spinels#2. |
For what it's worth, I was running into orphaned children in some situations after a Ctrl+C on |
See ddollar#780 for discussion
Scratch that: it resolved the issue on my system, but some colleagues ran into weird behavior with some spawned processes (specifically the Vite dev server). |
This is #723 but rebased against master today. Credit to @davishmcclurg for suggesting those changes in the first place.
I think this change also addresses #779. It makes Foreman match what Honcho does, and Honcho does not exhibit the problem shown in #779.
Close #779
(Some additional background: There was an earlier PR #528 that did half of what this PR does, #525 was closed after that was merged, but then the PR was reverted after a few days, could not find the reason for that).