starting gunicorn per mailman.log yet gunicorn not installed
I see the below in my mailman.log, yet I installed uwsgi and NOT gunicorn. My mainmanweb.service file includes "ExecStart=/opt/mailman/venv/bin/uwsgi --ini /etc/mailman3/uwsgi.ini" and not the gunicorn equivalent. Does this log entry make sense in my case?
[2023-06-22 12:44:36 -0700] [411132] [INFO] Starting gunicorn 20.1.0
Ken Alker writes:
I see the below in my mailman.log, yet I installed uwsgi and NOT gunicorn. My mainmanweb.service file includes "ExecStart=/opt/mailman/venv/bin/uwsgi --ini /etc/mailman3/uwsgi.ini" and not the gunicorn equivalent. Does this log entry make sense in my case?
[2023-06-22 12:44:36 -0700] [411132] [INFO] Starting gunicorn 20.1.0
Yes, it makes sense. Mailman 3 core is basically an application which manages a webserver that provides the REST API, a database of domains, users, and lists, an LMTP server for incoming posts and an SMTP client for outgoing distribution. Mailman uses gunicorn to provide the webserver.
Installation of gunicorn is handled as a package dependency, so you probably wouldn't notice unless you were watching the installation process very carefully.
On Mon, Jun 26, 2023 at 9:29 AM Stephen J. Turnbull < turnbull.stephen.fw@u.tsukuba.ac.jp> wrote:
Ken Alker writes:
I see the below in my mailman.log, yet I installed uwsgi and NOT gunicorn. My mainmanweb.service file includes "ExecStart=/opt/mailman/venv/bin/uwsgi --ini /etc/mailman3/uwsgi.ini" and not the gunicorn equivalent. Does this log entry make sense in my case?
[2023-06-22 12:44:36 -0700] [411132] [INFO] Starting gunicorn 20.1.0
Yes, it makes sense. Mailman 3 core is basically an application which manages a webserver that provides the REST API, a database of domains, users, and lists, an LMTP server for incoming posts and an SMTP client for outgoing distribution. Mailman uses gunicorn to provide the webserver.
Installation of gunicorn is handled as a package dependency, so you probably wouldn't notice unless you were watching the installation process very carefully.
It doesn't make sense, IMHO, because as the OP says,
his ExecStart is: ExecStart=/opt/mailman/venv/bin/uwsgi --ini /etc/mailman3/uwsgi.ini" *and not* ExecStart=/opt/mailman/venv/bin/gunicorn -c /etc/mailman3/gunicorn.conf mailman_web.wsgi:application.
He has not knowingly created any gunicorn.conf
Why would Gunicorn be Exec-ing itself? :-)
This being a virtualenv install, I find it very weird.
-- Best regards, Odhiambo WASHINGTON, Nairobi,KE +254 7 3200 0004/+254 7 2274 3223 "Oh, the cruft.", egrep -v '^$|^.*#' ¯\_(ツ)_/¯ :-) [How to ask smart questions: http://www.catb.org/~esr/faqs/smart-questions.html]
On 6/26/23 1:15 AM, Odhiambo Washington wrote:
On Mon, Jun 26, 2023 at 9:29 AM Stephen J. Turnbull < turnbull.stephen.fw@u.tsukuba.ac.jp> wrote:
Yes, it makes sense. Mailman 3 core is basically an application which manages a webserver that provides the REST API, a database of domains, users, and lists, an LMTP server for incoming posts and an SMTP client for outgoing distribution. Mailman uses gunicorn to provide the webserver.
Installation of gunicorn is handled as a package dependency, so you probably wouldn't notice unless you were watching the installation process very carefully.
It doesn't make sense, IMHO, because as the OP says,
his ExecStart is: ExecStart=/opt/mailman/venv/bin/uwsgi --ini /etc/mailman3/uwsgi.ini" *and not* ExecStart=/opt/mailman/venv/bin/gunicorn -c /etc/mailman3/gunicorn.conf mailman_web.wsgi:application.
He has not knowingly created any gunicorn.conf
Why would Gunicorn be Exec-ing itself? :-)
As Steve says, Mailman core uses Gunicorn to manage it's REST API. This has nothing to do with whatever WSGI server (uWSGI, Gunicorn, Apache mod_wsgi, ...) is used to support the Django applications (django-mailman3, hyperkitty and postorius).
I.e., there is always a Gunicorn instance configured and started by Mailman core, regardless of whatever WSGI server supports Django or even if one isn't running Django at all.
-- Mark Sapiro <mark@msapiro.net> The highway is for gamblers, San Francisco Bay Area, California better use your sense - B. Dylan
I should have mentioned that I was installing "from source" in the virtual environment (although it still seems to be package management but just Python based instead of OS based as I'm not compiling anything). Would your answer still apply in this situation?
Ken Alker writes:
I should have mentioned that I was installing "from source" in the virtual environment (although it still seems to be package management but just Python based instead of OS based as I'm not compiling anything). Would your answer still apply in this situation?
Yes, it does. The list of dependent packages is in mailman/setup.py. Instead of downloading from a distro package repository, the packages are downloaded in the form of "wheels" from pypi.org (the Python Package Index).
In mailmanweb, Postorius, HyperKitty, and django_mailman3 I believe the list is in requirements.txt.
Distros almost never mess with these dependencies, with the single exception of gunicorn for the mailmanweb WSGI server. Distro-defined dependencies are primarily the external webserver (eg. Apache, nginx), the MTA (eg, Postfix, Exim4, Sendmail, qmail), and the relational database management system (eg, PostgreSQL, MySQL).
Alternatives to gunicorn include uwsgi for nginx and Apache, and mod_wsgi for Apache.
Steve
Stephen J. Turnbull wrote:
Installation of gunicorn is handled as a package dependency, so you probably wouldn't notice unless you were watching the installation process very carefully.
I should have mentioned that I was installing "from source" in the virtual environment (although it still seems to be package management but just Python based instead of OS based as I'm not compiling anything). Would your answer still apply in this situation?
participants (4)
-
Ken Alker
-
Mark Sapiro
-
Odhiambo Washington
-
Stephen J. Turnbull