-
-
Notifications
You must be signed in to change notification settings - Fork 233
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
Misbehaving processes aren't killed #155
Comments
Heya, do you mind giving v4 a try? |
@gustavohenke thanks, I'll try to take a look this week |
@gustavohenke I think v4 has the same behaviour exhibited in the OP:
The last invocation of |
Cool. So it seems we really need a timeout (e.g. |
When running a program that can/does correctly respond to
SIGTERM
, Concurrently will successfully terminate the process and exit when using-k
/--kill-others
:But when a child process does not exit on
SIGTERM
the process isn't terminated at all:Further
SIGTERM
andSIGINT
signals sent toconcurrently
do nothing. Manually sendingSIGKILL
to the child process will allowconcurrently
to exit (with1
).Example programs
test/programs/a
(correctly responds toSIGTERM
):test/programs/b
(incorrectly ignoresSIGTERM
):Possible solution
Based on a bit of research, I think a more correct way to kill child processes would be to send
SIGTERM
to the children (not the the whole trees, just immediate children) and after some timeout sendSIGKILL
to the tree. This is what a few init systems will do.Related issues
SIGKILL
which seems dangerous. I think it would be better to always sendSIGTERM
first before sendingSIGKILL
. I would imagine the impetus for that flag is this same situation.The text was updated successfully, but these errors were encountered: