Carlos Konstanski
2017-06-09 21:37:01 UTC
I have a python process that I launch via a wrapper script. The wrapper
is responsible for ensuring that the virtualenv exists, that all the
packages in requirements.txt are installed, that the virtualenv is
activated, and finally it launches the python program.
When I run it under supervisord, the wrapper script is the process that
is being managed. The actual python program is a child-of-a-child and
supervisord knows nothing about it.
I performed the following experiment: I killed the wrapper script. The
result was that the child python process kept running but was now a
child of init (a top-level process). supervisord relaunched the wrapper
script. Now I had two python processes running.
How can I get supervisord to have knowledge of both the wrapper script
and its children? Alternatively, I wonder if there's a way to make my
python program die if the wrapper script dies. That would be just as
good.
Thanks,
Carlos Konstanski
is responsible for ensuring that the virtualenv exists, that all the
packages in requirements.txt are installed, that the virtualenv is
activated, and finally it launches the python program.
When I run it under supervisord, the wrapper script is the process that
is being managed. The actual python program is a child-of-a-child and
supervisord knows nothing about it.
I performed the following experiment: I killed the wrapper script. The
result was that the child python process kept running but was now a
child of init (a top-level process). supervisord relaunched the wrapper
script. Now I had two python processes running.
How can I get supervisord to have knowledge of both the wrapper script
and its children? Alternatively, I wonder if there's a way to make my
python program die if the wrapper script dies. That would be just as
good.
Thanks,
Carlos Konstanski