hivemind
hivemind copied to clipboard
Sub-processes aren't in the same process group
Because subprocesses aren't in the same process group as hivemind, when hivemind gets killed for some reason, the subprocesses arn't killed and are disowned instead.
Could you please spawn subprocesses in the same process group?
Processes have to be run in their own sessions because of PTY. It's not possible to run a process in a different session but the same group ID. Correct me if I'm wrong.
You're correct. According to this stackoverflow, it seems the solution would be to use:
- On Linux set Pdeathsig to syscall.SIGTERM
- On other platforms run intermediate child that pools whether its ppid is 1. If it is it means parent died and it should send SIGTERM to supervised process (you can also use other tricks like kqueue or sharing pipe that gets closed when parent dies, but it seems there's no solution without using intermediate process).
Or you cold record spawned pids and kill / reattach to them when running second time after crash. Of course it would leave these processes running until hivemind is started again. Not sure which solution is worse, but probably both better than allowing sub-processes to run indefinitely after hivemind crashes or gets killed.
Added Pdeathsig to v1.0.5.