Welches Protokoll sollte ich beim Debuggen beim Starten eines Webservers beim Booten verwenden?

Welches Protokoll sollte ich beim Debuggen beim Starten eines Webservers beim Booten verwenden?

Ubuntu 18.04

Ich versuche, den Gunicorn-Webserver beim Booten zu starten.

/etc/systemd/system/gunicorn.service

[Unit]
Description=gunicorn daemon

[Service]
# the specific user that our service will run as
User=pcask
Group=pcask

WorkingDirectory=/home/michael/PycharmProjects/pcask/pcask
ExecStart=gunicorn pcask.wsgi
ExecReload=/bin/kill -s HUP $MAINPID
KillMode=mixed
TimeoutStopSec=5
PrivateTmp=true

[Install]
WantedBy=multi-user.target

Berechtigungen

pcask@tmpgmv:~/pcask/venv/lib/python3.8/site-packages$ ls -la |grep gunicorn
drwxrwxr-x   7 pcask pcask   4096 Jul 28 19:32 gunicorn
drwxrwxr-x   2 pcask pcask   4096 Jul 28 19:32 gunicorn-20.0.4.dist-info

Beim Neustart läuft der Server nicht. Wenn ich meine Website öffne, wird 502 Bad Gateway angezeigt. Das bedeutet, dass Gunicorn nicht läuft.

Können Sie mir sagen, ob es ein Fehlerprotokoll gibt, in dem ich sehen kann, was schief gelaufen ist, als diese Servicedatei beim Booten verwendet wurde? Und ob sie überhaupt verwendet wurde.

SPÄTER HINZUFÜGT

$ sudo journalctl -u gunicorn.service
[sudo] password for pcask: 
Loaded: loaded (/etc/systemd/system/gunicorn.service; enabled; vendor preset: enabled)
   Active: failed (Result: exit-code) since Fri 2020-08-14 12:36:57 MSK; 1min 11s ago
  Process: 439 ExecStart=/home/pcask/pcask/venv/lib/python3.8/site-packages/gunicorn pcask.wsgi:application (code=exited, status=203/EXEC)
 Main PID: 439 (code=exited, status=203/EXEC)

Aug 14 12:36:57 tmpgmv systemd[1]: Started gunicorn daemon.
Aug 14 12:36:57 tmpgmv systemd[439]: gunicorn.service: Failed to execute command: Permission denied
Aug 14 12:36:57 tmpgmv systemd[439]: gunicorn.service: Failed at step EXEC spawning /home/pcask/pcask/venv/lib/python3.8/site-packages/gunicorn: Permission denied
Aug 14 12:36:57 tmpgmv systemd[1]: gunicorn.service: Main process exited, code=exited, status=203/EXEC
Aug 14 12:36:57 tmpgmv systemd[1]: gunicorn.service: Failed with result 'exit-code'.

Antwort1

systemd verwendet sein eigenes Logging. Der Befehl zum Anzeigen dieses Loggings lautet

journalctl 

Sie können

journalctl -u gunicorn.service

um einen bestimmten Dienst zu verfolgen.

Einige andere Beispiele:

journalctl --since="2020-01-01 10:00:00"
journalctl --since "30 min ago"
journalctl _PID=1000
  • Stellen Sie sicher, dass der Dienst aktiv ist. Überprüfen Sie ihn, sudo systemctl status gunicorn.serviceund wenn er inaktiv ist, können Sie sudo systemctl enable gunicornihn mit aktivieren.

  • Stellen Sie sicher, dass der Dienst erst gestartet wird, nachdem alle anderen erforderlichen Dienste gestartet wurden. Das Starten von Gunicon vor Nginx oder Ihrem Netzwerk funktioniert nicht. Beachten Sie Folgendes: In Ihrem Gerät fehlt ein After=network.targetin diesem [UNIT]Abschnitt.

Vorausgesetzt, Ihr Gunicorn funktioniert, wenn es manuell gestartet wird, benötigen Sie die Nginx-Protokolle nicht. Für alle Fälle sind dies jedoch die folgenden:

/var/log/nginx/access.log
/var/log/nginx/error.log

verwandte Informationen