Skip to content

Honoring stopasgroup / killasgroup defaulting to false #45

@haegrr

Description

@haegrr

Thanks for this awesome port. Looking at the main Supervisor docs, stopasgroup and killasgroup default to false. But since this port puts child processes into a job without breakaway, they are in effect always true here if I'm not mistaken?

Related LimitFlags:

  • JOB_OBJECT_LIMIT_SILENT_BREAKAWAY_OK will automatically break away grandchild processes
  • JOB_OBJECT_LIMIT_BREAKAWAY_OK will allow job-aware programs to break away their children on request (using the CREATE_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 in process.py fixes this according to my expectations of stopasgroup and killasgroup.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions