RE: VENV, Gunicorn, and Flask/Python Applications/BBBW

Hello,

I have been messing around w/ Gunicorn as a server to run my Flask/Python applications. Flask is a developmental server installation and needs to have another bound server to run in a undeveloped way. Right?

Anyway…

Flask = no production server
Gunicorn = production server for running Flask/Python applications

Okay…

I just found a way to use my virtual environment installs and source to run on boot w/ a .service file w/ systemd.

Here: https://unix.stackexchange.com/questions/541288/is-running-a-uwsgi-gunicorn-server-on-boot-possible-w-a-venv.

Okay so, it works. yea! But…the server keeps running even after I stop my .service file or disable it.

Seth

P.S. Does anyone know how to cancel their Gunicorn server from running online even after the .service file has been stopped/disabled?

On Thu, 12 Sep 2019 19:17:45 -0700 (PDT), Mala Dies
<functt@gmail.com> declaimed the following:

Okay so, it works. yea! But...the server keeps running even after I stop my
.service file or disable it.

Seth

P.S. Does anyone know how to cancel their Gunicorn server from running
online even after the .service file has been stopped/disabled?

  You may need to add an
    ExecStop
line to the configuration. Can't help with what would be in that line

http://docs.gunicorn.org/en/stable/deploy.html#monitoring

has an entry for systemd...

[Service]
PIDFile=/run/gunicorn/pid
User=someuser
Group=someuser
RuntimeDirectory=gunicorn
WorkingDirectory=/home/someuser/applicationroot
ExecStart=/usr/bin/gunicorn --pid /run/gunicorn/pid \
          --bind unix:/run/gunicorn/socket applicationname.wsgi
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s TERM $MAINPID
PrivateTmp=true

though I'm not sure how $MAINPID gets set, especially as they appear to be
stuffing the PID into a file.

Hello Mr. Dennis,

Thank you. That makes sense. I am unaware of PIDs but I guess I can check w/ the ExecStop= function.

Seth

P.S. I will test it and return service.

Yes Sir,

I found the info. you were describing. You rule, matey!

Seth

P.S. http://docs.gunicorn.org/en/stable/deploy.html#systemd.

Hello Again Mr. Dennis,

Seth here. Hey! You were right about ExecStop=. I typed it in and added this line:

ExecStop=/home/debian/virt/env/bin/gunicorn -b 0.0.0.0:5000 -w 4 MyPythonFile:app-shutdown

Seth

P.S. It takes a couple seconds to shutdown but it shuts down where my server is not online any longer. It stopped the workers and the file from running.

Hello Mr. Dennis,

You are not going to believe this idea. I was running another script on the same port. This is the only reason it did not work. Aw!

Seth

P.S. Sorry to bother you.