Charles 69 Posté(e) le 15 mars 2021 Posté(e) le 15 mars 2021 Bonjour , J'essaye de faire fonctionner un site web en python avec le framework flask ( avec gunicorn ) sur un Syno DS214 Play. Après avoir installé le paquet Python3, j'ai transféré les fichiers du site web qui fonctionne sur un PC sous Windows 10, (sauf l'environnement virtuel). Avec Putty, j'ai créé un environnement virtuel python3 sur le NAS et j'arrive à lancer l'application. Lorsque je ferme Putty le serveur continue de fonctionner, et pour l'arrêter je suis obligé avec Putty de rechercher les ports en écoute( netstat -taupeln|grep LISTEN), repérer celui qui m'intéresse et le stopper (kill). Je souhaiterai pouvoir démarrer et arrêter le site avec le Gestionnaire de taches. Pour le démarrer j'ai créé le fichier de script go.sh suivant #!bin/sh source /volume1/web/test/venv/bin/activate /volume1/web/test/venv/bin/gunicorn -w 4 -b 0.0.0.0:3000 wsgi:app Avec Putty, sous réserve de me placer dans le répertoire /volume1/web/test et en faisant sh go.sh le serveur se lance et tout fonctionne correctement. Lorsque je lance ce même script dans le gestionnaire de taches avec la commande : sh /volume1/web/test/go.sh j'ai l'erreur 'module not found wsgi:app' J'ai essayé d'ajouter : cd /volume1/web/test dans le script g.sh , ou en première ligne du gestionnaire de taches, et là j'ai des erreurs et rien ne fonctionne. Quant au script pour arrêter le serveur, je ne sais pas par où démarrer. J'imagine qu'il faut trouver le n° du processus qui écoute le port 3000. Si vous avez des idées sur les solutions, je suis preneur Merci d'avance. Charles 0 Citer
dominix.pf Posté(e) le 17 mars 2021 Posté(e) le 17 mars 2021 le gestionnaire de tache est un espèce de CRON. il est important de donner a ton script le même environnement qu'en ligne de commande (PATH; variables d'environnement, shell) je remarque une erreur dans le shebang, il manque un "/" la premiere ligne doit être exactement #! /bin/sh ^un espace suivit d'un / je te conseille de aussi de mettre dans ton script le cd (change directory) pour que le script soit dans le bon repertoire pour lancer la commande. pour l’arrêter une commande comme ci dessous doit faire l'affaire. #! /bin/bash killall -TERM gunicorn 0 Citer
Charles 69 Posté(e) le 18 mars 2021 Auteur Posté(e) le 18 mars 2021 Bonsoir, Merci pour ces infos. Le script pour arrêter fonctionne parfaitement, mais pour le lancer c'est pas encore ça. Avec Putty voilà ce que je fais et qui fonctionne root@Robert:/# cd volume1/web/test root@Robert:/volume1/web/test# source venv/bin/activate (venv) root@Robert:/volume1/web/test# gunicorn -w 4 -b 0.0.0.0:3000 wsgi:app [2021-03-18 18:52:58 +0100] [4013] [INFO] Starting gunicorn 20.0.4 [2021-03-18 18:52:58 +0100] [4013] [INFO] Listening at: http://0.0.0.0:3000 (4013) [2021-03-18 18:52:58 +0100] [4013] [INFO] Using worker: sync [2021-03-18 18:52:58 +0100] [4015] [INFO] Booting worker with pid: 4015 [2021-03-18 18:52:58 +0100] [4016] [INFO] Booting worker with pid: 4016 [2021-03-18 18:52:58 +0100] [4017] [INFO] Booting worker with pid: 4017 [2021-03-18 18:52:58 +0100] [4018] [INFO] Booting worker with pid: 4018 et voilà le script dans le gestionnaire de tâches : #! /bin/sh cd /volume1/web/test source venv/bin/activate gunicorn -w 4 -b 0.0.0.0:3000 wsgi:app qui me retourne l'erreur suivante : ----------------------------------------------------------------- Le planificateur de tâches à terminé une tâche planifiée. Tâche : Gunicorn Start Heure de début : Thu, 18 Mar 2021 15:03:39 GMT Heure d’arrêt : Thu, 18 Mar 2021 15:07:15 GMT État actuel : 0 (Normal) Sortie standard/erreur : [2021-03-18 15:03:41 +0100] [23159] [INFO] Starting gunicorn 20.0.4 [2021-03-18 15:03:41 +0100] [23159] [INFO] Listening at: http://0.0.0.0:3000 (23159) [2021-03-18 15:03:41 +0100] [23159] [INFO] Using worker: sync [2021-03-18 15:03:41 +0100] [23163] [INFO] Booting worker with pid: 23163 [2021-03-18 15:03:41 +0100] [23164] [INFO] Booting worker with pid: 23164 [2021-03-18 15:03:41 +0100] [23165] [INFO] Booting worker with pid: 23165 [2021-03-18 15:03:41 +0100] [23166] [INFO] Booting worker with pid: 23166 [2021-03-18 15:03:45 +0100] [23164] [ERROR] Error handling request /contact Traceback (most recent call last): File "/volume1/web/test/venv/lib/python3.8/site-packages/gunicorn/workers/sync.py", line 134, in handle self.handle_request(listener, req, client, addr) File "/volume1/web/test/venv/lib/python3.8/site-packages/gunicorn/workers/sync.py", line 165, in handle_request resp, environ = wsgi.create(req, client, addr, File "/volume1/web/test/venv/lib/python3.8/site-packages/gunicorn/http/wsgi.py", line 183, in create path_info = path_info.split(script_name, 1)[1] IndexError: list index out of range [2021-03-18 15:04:04 +0100] [23166] [ERROR] Error handling request /contact Traceback (most recent call last): File "/volume1/web/test/venv/lib/python3.8/site-packages/gunicorn/workers/sync.py", line 134, in handle self.handle_request(listener, req, client, addr) File "/volume1/web/test/venv/lib/python3.8/site-packages/gunicorn/workers/sync.py", line 165, in handle_request resp, environ = wsgi.create(req, client, addr, File "/volume1/web/test/venv/lib/python3.8/site-packages/gunicorn/http/wsgi.py", line 183, in create path_info = path_info.split(script_name, 1)[1] IndexError: list index out of range [2021-03-18 15:07:14 +0100] [23165] [INFO] Worker exiting (pid: 23165) [2021-03-18 15:07:14 +0100] [23166] [INFO] Worker exiting (pid: 23166) [2021-03-18 15:07:14 +0100] [23164] [INFO] Worker exiting (pid: 23164) [2021-03-18 15:07:14 +0100] [23159] [INFO] Handling signal: term [2021-03-18 15:07:15 +0100] [23159] [INFO] Shutting down: Master ------------------------------------------------------------------------ Il me semble que le serveur démarre et ensuite il y a un problème de path. Dans la structure de l'appli il y a 2 fichiers qui se nomment wsgi.py Un dans le répertoire de base ( volume1/web/test ) et un dans l'environnement virtuel ( volume1/web/test/venv/lib/python3.8/site-packages/gunicorn/http ) Quand on est dans Putty c'est le 1er qui se lance et quand c'est le gestionnaire de tâches c'est le 2 ème. Je continue à chercher ... 0 Citer
dominix.pf Posté(e) le 24 mars 2021 Posté(e) le 24 mars 2021 je pense que lorsque tu est dans putty il doit y avoir une variable d’environnement ou un PATH différent que lorsque tu est dans le gestionnaire de tache. tape la commande env dans ton environnement et met dans le script les mêmes variables susceptible de changer. exemple #! /bin/sh cd /volume1/web/test source venv/bin/activate PATH=/bin/boum:/paf/tralala:/opt/zip: gunicorn -w 4 -b 0.0.0.0:3000 wsgi:app Cordialement. 0 Citer
Messages recommandés
Rejoindre la conversation
Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.