Once a supervised process is shutdown and exited, we could make extra sure the process group we created for it is fully exited, if not, we can send a sigterm or sigkill to the remaining processes.
An alternative is to not reap the dead child pid while waiting for it, this way we can be sure there is no race condition when sending a final term/kill to the group before waiting the pid.
This should be a rare case, that requires misbehaving user programs, but it is nice to have, since we aim for fault tolerance.
Once a supervised process is shutdown and exited, we could make extra sure the process group we created for it is fully exited, if not, we can send a sigterm or sigkill to the remaining processes.
An alternative is to not reap the dead child pid while waiting for it, this way we can be sure there is no race condition when sending a final term/kill to the group before waiting the pid.
This should be a rare case, that requires misbehaving user programs, but it is nice to have, since we aim for fault tolerance.