IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Administration système Discussion :

Exécution automatique au démarrage via .sh et rc.local


Sujet :

Administration système

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2012
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2012
    Messages : 114
    Par défaut Exécution automatique au démarrage via .sh et rc.local
    Bonjour
    Je bosse sur un RPI, raspbian jessie
    je développe un dispositif complet (logiciel codé C++ + composants électronique externes)
    Une première version de l'appli n'était pas équipée d'écran, donc pas d'interface graphique
    Elle se lançait automatiquement en ayant crée un .sh sur mon bureau
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    cd /home/pi/dicartech/exec
    sudo ./Dic_v0.76
    appelé depuis le rc.local, dont voici la fin:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    #essai de mon script
    bash /home/pi/Desktop/dic.sh
    #fin
    exit 0
    Me deuxième version inclut un écran tactile, et une IHM graphique développée sur gtkmm
    Je veux procéder de la même façon pour la lancer automatiquement, mais cela ne fonctionne pas.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    cd /home/pi/dicartech/exec
    sudo ./dic_2_12
    • J'ai vérifié la syntaxe des noms de fichiers que j'apelle, en inversant les noms des deux appli, c'est seulement la non graphique qui démarre.
    • J'ai aussi testé mon script, en le lançant à la main depuis le terminal, l'appli graphique se lance correctement
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      bash /home/pi/Desktop/dic.sh
    • J'ai aussi tenté de repousser le lancement de la version graphique de 5S, au cas où elle soit lancée trop tôt dans le processue de démarrage du RPI, ça ne change rien.


    Je n'ai plus d'idée.

    Qu'est-ce qui peut clocher dans mon affaire?
    Merci

  2. #2
    Membre émérite

    Homme Profil pro
    linux, pascal, HTML
    Inscrit en
    Mars 2002
    Messages
    650
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : Belgique

    Informations professionnelles :
    Activité : linux, pascal, HTML
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2002
    Messages : 650
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Citation Envoyé par niconol Voir le message
    [CODE]#essai de mon script
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    bash /home/pi/Desktop/dic.sh
    #fin
    exit 0
    Me deuxième version inclut un écran tactile, et une IHM graphique développée sur gtkmm
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    cd /home/pi/dicartech/exec
    sudo ./dic_2_12
    C'est peut-être idiot mais dans le premier script, je vois
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    bash /home/pi/Desktop/dic.sh
    et donc dic.sh n'est pas nécessairement avec des droits executatble
    Ceci pourrait expliquer que ne fonctionne pas

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2012
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2012
    Messages : 114
    Par défaut
    donc dic.sh n'est pas nécessairement avec des droits executatble
    je ne te comprend pas!

    dic.sh est un fichier de script, pas un exécutable




    dans les deux cas je lance l'appli en sudo

  4. #4
    Membre émérite

    Homme Profil pro
    linux, pascal, HTML
    Inscrit en
    Mars 2002
    Messages
    650
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : Belgique

    Informations professionnelles :
    Activité : linux, pascal, HTML
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2002
    Messages : 650
    Billets dans le blog
    1
    Par défaut
    Un script est considéré comme un exécutable s'il est lancé seul.
    demande à Bash de lire le contenu et d'exécuter les commandes.
    Si je lance ./monscript.sh le système le considère comme un exécutable si ces droits sont suffisants (700 par exemple)
    sudo signifie que le propriétaire qui lance cet exécutable est root (administrateur) ce qui peut être nécessaire à causes des commandes contenues dans le script.
    Donc devrait arranger cela
    si nécessaire, voir https://doc.ubuntu-fr.org/permissions

  5. #5
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 686
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 686
    Par défaut
    tu demandes de s'exécuter à un script qui démarre une interface graphique (gtk) à un moment où il n'y a pas d'interface graphique démarrée (X11).

    et, contrairement aux programmes exécutés en mode texte, qui peuvent s'exécuter en arrière-plan, les programmes requérant X11 nécessitent une identification.
    il est toute fois possible de configurer le Display Manager (GDM)pour permettre à un utilisateur donné d'accéder automatiquement au Window Manager (Gnome).

    par contre, les programmes "fenétrés" ne devraient pas être exécutés par root !
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2012
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2012
    Messages : 114
    Par défaut
    Michel,
    décidément, il y a quelque chose qui m'échappe, peux-tu reformuler ?

    J'ai réglé les droits . Le .sh est devenu double-cliquable pour son exécution, du moins il me semble qu'il ne l'était pas avant.
    J'ai donc les droits suffisants pour exécuter le sh, en double clic ou manuellement depuis le terminal.

    lorsque la commande suivante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    bash /home/pi/Desktop/dic.sh
    est lancée au démarrage depuis rc.local, rien ne se passe, comme si effectivement je n'ai pas les droits d’accès.

    Je ne comprends pas pourquoi le comportement est différent. Les droits d’accès ne changent pourtant pas!

    J'ai modifié mon .sh ainsi:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    sleep 20
    sudo gpicview ~/Desktop/splash.png
    avec bien entendu un splash.png sur mon bureau.
    le sleep 20 pour attendre le complet démarrage de la machine, merci N_BaH
    l'ouverture d'une image pour écarter le paramètre "mon appli est peut être foireuse"

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 6
    Dernier message: 01/12/2008, 11h02
  2. Comment exécuter une API windows via php ?
    Par mikemead dans le forum Bibliothèques et frameworks
    Réponses: 5
    Dernier message: 31/03/2006, 11h19
  3. Problème d'exécution Acrobat et Word via IE
    Par licorne dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 21/11/2005, 13h17
  4. Problème d'exécution d'un ActiveX via un Javascript
    Par xjinh dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 27/10/2005, 15h08
  5. exécution automatique d'une macro
    Par faayy dans le forum Access
    Réponses: 12
    Dernier message: 15/06/2005, 15h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo