ubuntu 18.04
Estoy intentando hacer que el servidor web Gunicorn se inicie al arrancar.
/etc/systemd/system/gunicorn.servicio
[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
Permisos
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
Al reiniciar, el servidor no se está ejecutando. Es decir, cuando abro mi sitio web, muestra 502 Puerta de enlace incorrecta. Esto significa que Gunicorn no está funcionando.
¿Podría decirme si hay un registro de errores donde pueda ver qué salió mal cuando se usó este archivo de servicio en el arranque? Y si se utilizó en absoluto.
AÑADIDO MÁS TARDE
$ 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'.
Respuesta1
systemd usa su propio registro. El comando para verlo es
journalctl
Puedes usar
journalctl -u gunicorn.service
para rastrear un servicio específico.
Algunos otros ejemplos:
journalctl --since="2020-01-01 10:00:00"
journalctl --since "30 min ago"
journalctl _PID=1000
asegúrese de que el servicio esté activo. Verifique
sudo systemctl status gunicorn.service
y si está inactivo puede usarlosudo systemctl enable gunicorn
para activarlo.asegúrese de que el servicio se inicie después de que se inicien todos los demás servicios necesarios. Iniciar gunicon antes de que nginx o su red esté activa no funcionará. Algo que vale la pena señalar: a su unidad le falta un
After=network.target
en la[UNIT]
sección.
Suponiendo que su gunicorn funcione cuando se inicia manualmente, no necesita los registros de nginx, pero por si acaso, esos son:
/var/log/nginx/access.log
/var/log/nginx/error.log