Estoy tratando de implementar una aplicación de matraz usando uWSGI y nginx usando el servicio del sistema. Vi muchos tutoriales y todos tienen los mismos procesos excepto por el cambio en el archivo .service .
Este es mi archivo de servicio:
[Unit] Description=Flask web server [Install] WantedBy=multi-user.target [Service] User=schirag PermissionsStartOnly=true ExecStart=/home/schirag/server.py TimeoutSec=600 Restart=on-failure RuntimeDirectoryMode=755Obtengo el estado del archivo de servicio de la siguiente manera:
flask.service - Flask web server Loaded: loaded (/etc/systemd/system/flask.service; disabled; vendor preset: disable> Active: failed (Result: exit-code) since Wed 2021-08-11 11:20:25 IST; 6s ago Process: 13131 ExecStart=/home/schirag/server.py (code=exited, status=203/EXEC) Main PID: 13131 (code=exited, status=203/EXEC) Aug 11 11:20:24 localhost.localdomain systemd[1]: flask.service: Main process exited, code=exited, status=203/EXEC Aug 11 11:20:24 localhost.localdomain systemd[1]: flask.service: Failed with result 'exit-code'. Aug 11 11:20:25 localhost.localdomain systemd[1]: flask.service: Service RestartSec=100ms expired, scheduling restart. Aug 11 11:20:25 localhost.localdomain systemd[1]: flask.service: Scheduled restart job, restart counter is at 5. Aug 11 11:20:25 localhost.localdomain systemd[1]: Stopped Flask web server. Aug 11 11:20:25 localhost.localdomain systemd[1]: flask.service: Start request repeated too quickly. Aug 11 11:20:25 localhost.localdomain systemd[1]: flask.service: Failed with result 'exit-code'. Aug 11 11:20:25 localhost.localdomain systemd[1]: Failed to start Flask web server. Intenté cambiar el archivo de servicio de otras fuentes y también intenté cambiar los permisos del directorio, sigo recibiendo el mismo error y no puedo iniciar la aplicación usando el servicio. Aunque puedo ejecutar la aplicación manualmente usando uwsgi usando el siguiente comando: uwsgi --socket 0.0.0.0:8000 --protocol=http -w wsgi
Su ExecStart debe actualizarse. Debe proporcionar tanto la ubicación del archivo como el intérprete. Dado que está utilizando python, su código debería ser de esta manera:
[Unit] Description=Flask web server [Service] User=schirag PermissionsStartOnly=true ExecStart=/usr/bin/python3 /home/schirag/server.py TimeoutSec=600 Restart=on-failure RuntimeDirectoryMode=755 [Install] WantedBy=multi-user.target Use el type python3 para obtener la ubicación de python.