Skip to content

Supervisord does not kill old Tango and TangoManager processes on restart #128

Open
@dnivra

Description

@dnivra

Expected Behavior

On restarting the Tango processes using supervisorctl, I noticed that the Tango server and manager do not exit. supervisorctl however starts new server and manager processes which don't function correctly since the old ones are running.

Actual Behavior

supervisorctl should first kill the Tango server and manager processes before starting new processes.

Steps to Reproduce the Behavior

Run supervisorctl restart all.

Possible reason and fix

In the supervisord configuration, Tango is invoked by /bin/sh and since the terminate signal doesn't propagate to child processes by default, the server and manager continue to run while only the original /bin/sh is killed.

There are two possible fixes I can think of:

  1. Invoke the server and manager directly rather than via /bin/sh. I tested this and it seems to work fine.
  2. Use the stopasgroup or killasgroup directives of supervisor to propagate the kill command to all children. I haven't tested these.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions