ckl6767 Posté(e) le 12 mai 2016 Posté(e) le 12 mai 2016 (modifié) DS213j Version: DSM 6.0-7321 Update 6 Bonjour, Cela fait plusieurs jours que j'essaye de trouver une solution à mon problème, cad de lancer un script au démarrage de mon NAS. J'ai fait pas mal de recherches, essayer plusieurs choses, malheureusement je n'arrive pas à trouver la solution En suivant la documentation de Synology pour lancer un script If you would like a script to be executed during the booting or shutting down process, you can put a startup script in /usr/local/etc/rc.d/. Following are the rules for the startup script: It must contain the suffix “.sh”. For example, “myprog.sh”. The permission must be 755. It must contain the options “start” and “stop”. When the system boots up, it will call “myprog.sh start”; when it shuts down, it will call “myprog.sh stop”. J'ai mon script suivant #!/bin/sh case $1 in start) /volume1/homes/admin/dev/web_server/env/bin/python /volume1/homes/admin/dev/web_server/surv_station_server.py >> /volume1/homes/admin/dev/web_server/log.txt exit 0 ;; stop) exit 0 ;; *) esac Lorsque je lance mon script à la main, en me logant à travers ssh, cela fonctionne bien admin@NAS-CKL:~/dev/web_server$ ./webserv.sh start * Running on http://......... Par contre, quand je mets mon script dans le répertoire /usr/local/etc/rc.d/ mon NAS ne me permet pas de me Logger. !! Le NAS démarre bien, je peux me connecter en ssh (Heureusement, car cela permet de supprimer mon fichier .shell) mais impossible de me logger sur l'interface de gestion Le message est du style: "Votre NAS est entrain de démarrer, revenez plus tard ..." (Voir ci-dessous) J'ai attendu 3 heures J'ai comme l'impression que mon script ne peut être lancé car tous les services nécessaires ne sont pas disponibles. Avez-vous un avis ?? Merci Christian Modifié le 12 mai 2016 par ckl6767 0 Citer
CoolRaoul Posté(e) le 12 mai 2016 Posté(e) le 12 mai 2016 Tant que le script n'aura pas rendu la main le démarrage du NAS sera toujours considéré comme "en cours" Il faut donc qu'il soit lancé en background. Pour cela, à la fin de la la ligne: /volume1/homes/admin/dev/web_server/env/bin/python /volume1/homes/admin/dev/web_server/surv_station_server.py >> /volume1/homes/admin/dev/web_server/log.txt tu dois ajouter : </dev/null 2>&1 & Au passage, ca serait plus lisible écrit ainsi: cd /volume1/homes/admin/dev/web_server ./env/bin/python surv_station_server.py >>log.txt 2>&1 </dev/null & Question subsidiaire: pourquoi n'utilises-tu pas le python 2.7 pré-installé (/usr/bin/python) "officiel" ou éventuellement le paquet python 3 0 Citer
ckl6767 Posté(e) le 12 mai 2016 Auteur Posté(e) le 12 mai 2016 Merci beaucoup :-) Je vais essayer de suite. Par rapport à ta question: Je n'ai pas réussi à installer pip avec le paquet synology python3, je suis donc passé sur le paquet python3 de la community ou pip3 est installé par defaut. En effet mon développement se fait sur le framwork Flask Christian 0 Citer
CoolRaoul Posté(e) le 12 mai 2016 Posté(e) le 12 mai 2016 (modifié) il y a 22 minutes, ckl6767 a dit : Je n'ai pas réussi à installer pip avec le paquet synology python3, je suis donc passé sur le paquet python3 de la community ou pip3 est installé par defaut. En effet mon développement se fait sur le framwork Flask Tu m'en diras tant! (pas compris grand chose mais c'est sans importance ) Je reste juste étonné du chemin du binaire python ("/volume1/homes/admin/dev/web_server/env/bin/python") je suis surpris python de Synocommunity soit installé avec ce chemin Modifié le 12 mai 2016 par CoolRaoul 0 Citer
ckl6767 Posté(e) le 12 mai 2016 Auteur Posté(e) le 12 mai 2016 Non.... L'intérêt du python est de pouvoir travailler avec des environnements dédiés.. Python3 de la SynoCommunity est bien installé dans /usr/local/python3/bin et par la suite, tu es bien obligé de modifier le PATH PATH=/usr/local/python3/bin:$PATH Par contre dans ton répertoire de travail, tu peux créer ton propre environnement, (cette méthode permet de "répliquer" ton python3 dans le répertoire) mkdir web_server cd web_server/ pyvenv-3.4 env Une fois ton environnement activé, tu travailles uniquement dans cet environnement sans interférer pas avec le python dans /usr/local/python3/bin . env/bin/activate Dans cet environnement tu installes tous les packets python que tu veux pip3 install Flask Voilà pourquoi je pointe sur mon le python de "mon" environnement 0 Citer
CoolRaoul Posté(e) le 12 mai 2016 Posté(e) le 12 mai 2016 il y a 14 minutes, ckl6767 a dit : Voilà pourquoi je pointe sur mon le python de "mon" environnement Ok c'est plus clair comme ça. Et sinon, ça marche maintenant le script de démarrage au boot? 0 Citer
ckl6767 Posté(e) le 12 mai 2016 Auteur Posté(e) le 12 mai 2016 Je viens de faire la modification comme conseillé Nickel. Merci beaucoup 0 Citer
ckl6767 Posté(e) le 20 mai 2016 Auteur Posté(e) le 20 mai 2016 Petit addon concernant l'utilisation de python de synology. Finalement j'ai réussi . Si cela peut servir à d'autres ============================ Installation sur serveur NAS ============================ Utilisation de python3 avec le paquet de Synology Creation virtual environment python3 -m venv --without-pip env source env/bin/activate Installation pip3 wget https://bootstrap.pypa.io/get-pip.py python get-pip.py Deactivate then reactivate your virtual environment. Do this or pip won't work correctly. deactivate source env/bin/activate which pip Install Flask pip3 install Flask ... 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.