J'essaie de suivre ce tutoriel pour configurer uWSGI
avec Django
et nginx
le Ubuntu
16.04
.
Tout fonctionne bien jusqu'à la toute dernière étape (oh l'ironie ...) où j'essaie d'exécuter cette commande:
Sudo service uwsgi start
Si échoue avec l'erreur suivante:
Impossible de démarrer uwsgi.service: unité uwsgi.service introuvable.
D'autres semblent obtenir une erreur similaire:
Impossible de démarrer uwsgi.service: Échec du chargement de l'unité uwsgi.service: aucun fichier ou répertoire de ce type.
Le problème semble être lié à la version d'Ubuntu. Bien que ce didacticiel soit destiné à Ubuntu 14.04, il semble qu'il ne fonctionnera pas pour les versions plus récentes car dans la version 15, Ubuntu est passé du démon upstart
init au démon systemd
init =.
Comment puis-je utiliser systemd
pour lancer uWSGI afin qu'il fonctionne avec nginx et Django?
La première modification nécessaire est la /etc/uwsgi/sites/firstsite.ini
fichier. La seule modification nécessaire consiste à remplacer les autorisations de 664
à 666
. Le script ressemblerait à ceci:
[uwsgi]
project = firstsite
base = /home/user
chdir = %(base)/%(project)
home = %(base)/Env/%(project)
module = %(project).wsgi:application
master = true
processes = 5
socket = %(base)/%(project)/%(project).sock
chmod-socket = 666
vacuum = true
Deuxièmement , comme nous utilisons systemd
plutôt que upstart
, le fichier suivant est non nécessaire et peut être supprimé: /etc/init/uwsgi.conf
Troisièmement , nous créons le script systemd
suivant à /etc/systemd/system/uwsgi.service
:
[Unit]
Description=uWSGI Emperor service
After=syslog.target
[Service]
ExecStart=/usr/local/bin/uwsgi --emperor /etc/uwsgi/sites
Restart=always
KillSignal=SIGQUIT
Type=notify
StandardError=syslog
NotifyAccess=all
[Install]
WantedBy=multi-user.target
Actualisez l'état du système systemd init avec ce nouveau service uWSGI à bord
Sudo systemctl daemon-reload
Pour démarrer le script, vous devrez exécuter ce qui suit:
Sudo systemctl start uwsgi
Pour démarrer uWSGI
au redémarrage, vous aurez également besoin de:
Sudo systemctl enable uwsgi
Vous pouvez utiliser les éléments suivants pour vérifier son état:
systemctl status uwsgi
D'autres détails peuvent être trouvés ici .
Pour contourner cette erreur: Sudo systemctl daemon-reload
pour le fichier wsgi.service nouvellement créé à charger.
Pour démarrer le service à chaque redémarrage: Sudo systemctl enable uwsgi
.