Partage
  • Partager sur Facebook
  • Partager sur Twitter

Accès fichiers et dossiers du script on BOOT start

Sujet résolu
    24 août 2016 à 13:56:10

    Bonjour à vous,

    Depuis très longtemps, j'utilise des petits scripts simple au démarrage d'une machine Linux..

    Soit en bash, soit en python.. avec l'aide de ".bashrc" ou "/etc/init.d/ (update-rd.c myapp defaults)"

    Jamais eu de problème de ce type..

    Le VOICI:

    Mon programme possède plusieurs dossiers et fichiers (scripts), dont une base de données et un fichier de configuration.

    J'ai essayé directement en exécutant le script main.py à partir de .bashrc ou init.d

    J'ai essayé en ajoutant un fichier tiers pour "update-rd.c"

    VRAI DOSSIER = /home/pi/MyScript/MyScriptMain/main.py

    DOSSIER_CORE = /home/pi/MyScript/MyScriptMain/core

    **La Base de données et Fichier de Configuration sont dans 'core'

    #!/bin/bash
    #/etc/init.d/start_main
    
    case "$1" in
        start)
            echo "Starting MAIN"
            sudo python /home/pi/MyScript/MyScriptMain/main.py
            ;;
        stop)
            echo "Stopping MAIN"
            kill $(ps aux | grep "python /home/pi/MyScript/MyScriptMain/main.py" | awk '{print $2}')
            ;;
        *)
            echo "Usage ..."
            exit 1
            ;;
    esac
    
    exit 0


    Tout mes scripts fonctionnent avec:

    .soit "os.getcwd() +os.sep + 'core'

    .soit "os.path.join(os.getcwd(), 'core')

    Tout fonctionne très bien lorsque le script est démarré normalement..

    Mais en "StartUp","Boot": il recherche

    dans le /home/pi/core ou /core (comme un chemin absolue)

    Es-ce que le seul moyen de pouvoir tout faire fonctionner est de changer tous les liens en chemin absolue?

    Mon script devra toujours être modifier, lorsque je changerai le chemin..

    Es-ce "os.getcwd" le problème? J'ai essayé l'enlevant PARTOUT, et j'ai laissé 'core' seul. Pas résolu le problème..

    Merci de votre aide

    -
    Edité par nolimitech 24 août 2016 à 13:59:07

    • Partager sur Facebook
    • Partager sur Twitter
      24 août 2016 à 14:26:44

      salut,

      je suis d'avis de toujours utiliser les chemins absolus.
      c'est rien à faire : tu le mets dans une variable (une, ou plusieurs) au début du script, et tu te sers de la variable dans le cours du script !

      racine=/home/user
      db=$racine/databases
      etcetera=$db/etc
      autre=$racine/autrechose
      
      maCommandeDB --options $db
      • Partager sur Facebook
      • Partager sur Twitter

      Validez la réponse utile « Un problème clairement exposé est à moitié résolu. » Pas de MP technique

        25 août 2016 à 4:06:43

        dantonq a écrit:

        salut,

        je suis d'avis de toujours utiliser les chemins absolus.
        c'est rien à faire : tu le mets dans une variable (une, ou plusieurs) au début du script, et tu te sers de la variable dans le cours du script !

        racine=/home/user
        db=$racine/databases
        etcetera=$db/etc
        autre=$racine/autrechose
        
        maCommandeDB --options $db


        Merci de votre réponse rapide :)

        C'est vrai que c'est pas si compliqué, tous mes scripts fonctionne comme cela, mais avec os.getcwd...

        C'est juste parce que j'ai environs 70 autres scripts, indépendant.. Donc, chacun un main.py. Donc, chaque fois que je bouge le chemin, je dois modifier les 70 fichiers.Du coup, pareil pour les fichiers de configuration, qui normalement s'ouvre en premier...

        C'était surtout, pour savoir, s'il existait un autre moyen.

        J'avoue que je pourrais peut-être créer une variable dans le fichier TIERS ( Bash )

        et ajouter un sys.argv[1] aux scripts python.

        Merci beaucoup

        • Partager sur Facebook
        • Partager sur Twitter
          25 août 2016 à 4:51:25

          mais pourquoi bouges-tu ton chemin ?

          t'imagines si les développeurs décidaient chaque matin de mettre les fichiers de conf ailleurs que sous /etc/ ?
          tu définis une hiérarchie, et il n'y a pas de raison d'en changer.

          • Partager sur Facebook
          • Partager sur Twitter

          Validez la réponse utile « Un problème clairement exposé est à moitié résolu. » Pas de MP technique

            25 août 2016 à 5:06:02

            C'est vrai, mais je sais pas, c'est probablement ma hiérarchisation qui traine la patte.

            Pas assez de communication entre les scripts, lorsque je les exécutes...

            Va falloir je change mes habitudes :)

            -
            Edité par nolimitech 25 août 2016 à 5:07:26

            • Partager sur Facebook
            • Partager sur Twitter
              25 août 2016 à 5:10:56

              nolimitech a écrit:

              C'est vrai, mais je sais pas, c'est probablement ma hiérarchisation qui traine la patte.

              duplique simplement la hiérarchie de Linux dans ton répertoire personnel, non ?

              • Partager sur Facebook
              • Partager sur Twitter

              Validez la réponse utile « Un problème clairement exposé est à moitié résolu. » Pas de MP technique

              Accès fichiers et dossiers du script on BOOT start

              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
              • Editeur
              • Markdown