Falha ao iniciar gunicorn.service: Unidade gunicorn.service não encontrada. Ubuntu 18.04

Falha ao iniciar gunicorn.service: Unidade gunicorn.service não encontrada. Ubuntu 18.04

Eu estou seguindoesseGuia Como configurar o Django com Postgres, Nginx e Gunicorn no Ubuntu 18.04.

Eu criei o seguinte arquivo .socket

sudo nano /etc/systemd/system/gunicorn.socket

[Unit]
Description=gunicorn socket

[Socket]
ListenStream=/run/gunicorn.sock

[Install]
WantedBy=sockets.target

Eu criei o seguinte arquivo .service

sudo nano /etc/systemd/system/gunicorn.service

RECOMENDED_FORMATTING-s originais noguia

[Unit]
Description=gunicorn daemon
Requires=gunicorn.socket
After=network.target


[Service]
User=sammyRECOMENDED_FORMATTING
Group=www-data
WorkingDirectory=/home/sammyRECOMENDED_FORMATTING/myprojectdirRECOMENDED_FORMATTING
ExecStart=/home/sammyRECOMENDED_FORMATTING/myprojectdirRECOMENDED_FORMATTING/myprojectenvRECOMENDED_FORMATTING/bin/gunicorn \
          --access-logfile - \
          --workers 3 \
          --bind unix:/run/gunicorn.sock \
          myprojectRECOMENDED_FORMATTING.wsgi:application

[Install]
WantedBy=multi-user.target

Como formatei minha própria versãoEu tinha meu ambiente virtual fora da pasta do projeto no servidor

[Unit]
Description=gunicorn daemon
Requires=gunicorn.socket
After=network.target

[Service]
User=SERVER_USER
Group=www-data
WorkingDirectory=/home/SERVER_USER/MAIN_PROJECT_FOLDER
ExecStart=/home/SERVER_USER/ven/bin/gunicorn \
          --access-logfile - \
          --workers 3 \
          --bind unix:/home/SERVER_USER/MAIN_PROJECT_FOLDER/MAINAPPLICATION_FOLDER.sock \
          MAINAPPLICATION_FOLDER.wsgi:application

[Install]
WantedBy=multi-user.target

Eu também tentei deixá-los como recomendado originalmente

--bind unix:/run/gunicorn.sock \

Então tentei executar o seguinte código

sudo systemctl start gunicorn

mensagem de erro 1

Failed to start gunicorn.service: Unit gunicorn.service not found.

e eu também tentei com 2

sudo systemctl start gunicorn.socket

Mensagem de erro 2

Failed to start gunicorn.socket: Unit gunicorn.socket is not loaded properly: Invalid argument.
See system logs and 'systemctl status gunicorn.socket' for details.

Para resolver isso, eu tentei

Responder1

Você tem a seção [Instalar] em seu serviço, o que significa que você precisa executar o comando sudo systemctl enable gunicorn.servicepara iniciar o serviço na inicialização do sistema.

Depois de executar o comando, um link simbólico para este arquivo será criado no diretório /etc/systemd/system/multi-user.target.wants/.

Observe que você também precisa criar o arquivo de soquete nomeado gunicorn.sockete ativá-lo. Depois de habilitar, você pode ativar o soquete executando o comando sudo systemctl start gunicorn.socket. Você não precisa executar o serviço, pois o systemd descobrirá a dependência.

Você pode verificar o status do serviço com systemctl status gunicorn.service.

Responder2

no meu caso, o servidor não criou o gunicorn.socketarquivo. então, tive que criar o arquivo sozinho e habilitá-lo.

vá para: /etc/systemd/systeme verifique todos os arquivos e diretórios disponíveis pelo comando ls.

se o arquivo não estiver lá, tente recriá-lo desde o início: sudo nano ~/etc/systemd/system/gunicorn.socket, ou sudo nano gunicorn.socket.

e então habilite-o primeiro por: sudo systemctl enable gunicorn.socket, após a habilitação faça: sudo systemctl start gunicorn.socket.

se tudo funcionar bem, você verá que o status do arquivo gunicorn.socketestá ativo, após executar o comando sudo systemctl status gunicorn.socketvocê verá:

     gunicorn.socket - gunicorn socket
     Loaded: loaded (/etc/systemd/system/gunicorn.socket; enabled; vendor prese>
     Active: active (listening) since Fri 2020-06-26 17:53:10 UTC; 14s ago
   Triggers: ● gunicorn.service
     Listen: /run/gunicorn.sock (Stream)
      Tasks: 0 (limit: 1137)
     Memory: 0B
     CGroup: /system.slice/gunicorn.socket

informação relacionada