Aller au contenu

Lancer script au démarrage du NAS


Messages recommandés

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 :redface:

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 :biggrin:


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 :sad:

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 

Capture.PNG

Modifié par ckl6767
Lien vers le commentaire
Partager sur d’autres sites

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

Lien vers le commentaire
Partager sur d’autres sites

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

Lien vers le commentaire
Partager sur d’autres sites

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 :confused:)

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é par CoolRaoul
Lien vers le commentaire
Partager sur d’autres sites

Non.... 

L'intérêt du python est de pouvoir travailler avec des environnements dédiés.. :biggrin:

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 

 

 

Lien vers le commentaire
Partager sur d’autres sites

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
...

 

Lien vers le commentaire
Partager sur d’autres sites

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.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.