Open Flygsand opened 1 year ago
I understand the problem and thank you for the detailed explanation. But due to lack of time a solution for this may take time. If you want, you can advance part of this work by sending a pull request with tests if possible.
Thanks for this awesome port. Looking at the main Supervisor docs,
stopasgroup
andkillasgroup
default tofalse
. But since this port puts child processes into a job without breakaway, they are in effect alwaystrue
here if I'm not mistaken?Related LimitFlags:
JOB_OBJECT_LIMIT_SILENT_BREAKAWAY_OK
will automatically break away grandchild processesJOB_OBJECT_LIMIT_BREAKAWAY_OK
will allow job-aware programs to break away their children on request (using theCREATE_BREAKAWAY_FROM_JOB
process creation flag)Use case: I have an app that spawns an updater process that stops the service and expects to be orphaned. The updater completes the update and the starts the service back up again. But due to the above, the updater gets terminated with the job and the service never restarts. Setting
JOB_OBJECT_LIMIT_SILENT_BREAKAWAY_OK
inprocess.py
fixes this according to my expectations ofstopasgroup
andkillasgroup
.