Problème script au demarrage de linux centos

Bonjour,
je souhaite démarrer mon programme de calcul partagé (boinc)
j'ai modifié le fichier /etc/rc.local en y mettant les lignes suivantes :
#!/bin/sh
/BOINC/run_client -daemon

hors rien ne se charge ?
j'ai lancé la commande manuellement est ça fonctionne impécablement ?
que se passe t il ? est ce l'espace avant le -daemon qui dérange ou ne foncitonne pas ?
j'ai tenté de mettre :
/BOINC/run_client & -daemon
mais ça ne fonctionne pas ?
merci de votre aide
cordialement

32 réponses

  • Votes
  • Date
  • Date décroissante
Résumé de la discussion

Le problème décrit vise à lancer le client BOINC en démon via /etc/rc.local alors que l’exécution manuelle du binaire réussit dans ce cas, à priori toutefois. Plusieurs conseils préconisent d'utiliser le chemin absolu du binaire, d'ajouter ce chemin au PATH et d'exporter PATH avant d'appeler run_client -daemon pour que le binaire soit trouvé au démarrage. D’autres indiquent que -daemon est spécifique et que des soucis de chemin, de droits d'exécution ou d’environnement au boot peuvent empêcher le lancement du processus au démarrage. En dernier lieu, certains évoquent des vérifications comme l’exécution du script, les permissions et le PATH réel après reboot, et un participant mentionne que des problèmes de groupe ou de droits d’accès peuvent bloquer BOINC.

Bobot (l’IA à votre service)
  1. bonjour
    donc en résumé : quand tu rebootes ton serveur : il faut ouvrir une session en ssh puis la refermer pour que le démon soit lancé ?
    merci de ton aide
    cordialement
    1. bonjour
      le plus simple et comme tu me l'as dit c'est de passer par le .bashrc
      le .bashrc : faut il ouvrir une session pour qu'il se lance ? ou travaille t il en tache de fond ?
      cordialement
      1. Modérateur
        Il faut ouvrir une session, en gros comme le /etc/rc.local, il ne se lance que s'y tu te logues.
    2. bonjour
      j'ai meme essayé de placer le lancement du programme testrc.sh avant le /var/lock/subsys/local
      mais rien n'y fait ...
      Pour ta solution finale : pas de fichier error.log .... snif...
      Pour ta question avec le "&" : a quoi sert ce signe ?
      Merci pour ton aide précieuse ...
      je vais devoir créer un service avec tout ce que ça comporte comme problème...
      Cordialement
      1. Modérateur
        avec le "&" : a quoi sert ce signe ?
        A lancer un job en arrière plan. Au passage ce signe c'est une esperluette ;-))
    3. bonjour
      rien ne fonctionne :
      voici ce que j'ai fait :
      créé le fichier testrc.sh
      chmod 777
      je l'ai laissé sur /BOINC/
      puis redémarrage du serveur
      et je l'ai changé de place pour le mettre dans /etc/
      en n'oubliant pas de changer le chemin dans le testrc.sh
      mais toujours rien ...
      donc je pense à croire que le rc.local n'est pas chargé au demarrage ???
      ce qui est bizarre vu que le fichier : /var/lock/subsys/local est bien créé et lui et dans le rc.local .?.?
      merci de ton aide
      cordialement
      1. Modérateur
        Donc apparemment c'est un problème lié à CentOS comme qui dirait ;-\

        Perso j'ai épuisé mes pistes, désolé ;-(

        Essaies de voir du côté de CentOS (forum, liste, tuto, etc.,...)

        ce qui est bizarre vu que le fichier : /var/lock/subsys/local est bien créé et lui et dans le rc.local .?.?
        T'es sûr que ce n'est pas un problème de droits ?
        T'as essayé aussi de lancer le programme avec "&" à la place de "-daemon" ?
        Rajoute un "2>error.log" après ta commande :

        /BOINC/run_client -daemon 2>error.log

        Et vois après redémarrage, et d'un si le fichier error.log est bien créé, et de deux si il contient des messages d'erreurs...
    4. bonjour
      il semblerait que rc.local ne se charge pas au demarrage ? le touch ne créé aucun fichier dans le répertoire de travail root
      j'ai fait un find / -name fichier.test
      mais rien ....

      pour répondre à tes questions : je parlais effectivement du $PATH (mais je pense que oui car il doit se lancer au debut de l'intialisation ? peux tu me le confirmer ?

      question : cette mise à jour va être lancé que pour le root ?
      De quoi tu parles ? Qu'appelles-tu "mise à jour" ? Le $PATH ?

      si je créé d'autre utilisateurs qui se trouveront dans le groupe root ? que va t il se passer ?
      Par rapport à quoi ? Au $PATH ?

      Merci de ton aide
      Cordialement
      1. Modérateur
        par contre mon /BOINC/run_client -daemon qui se trouve dans le /etc/rc.local ne se lance toujours pas ?
        Ça c'est bizarre ;-\
        T'es sûr que le daemon n'est pas lancé ?

        Il faudrait sur tu crées un petit programme (foo.sh) du genre :

        #! /bin/bash
        cd ~
        touch fichier.test

        Que tu le rendes exécutable, que tu places dans /BOINC et que tu l'ajoutes à /etc/rc.local, pour voir si le fichier est créé ou pas...

        S'il n'est pas créé, tu déplaces le fichier foo.sh dans ton /home et tu recommences l'expérience..

        On devrait être fixé déjà si c'est /etc/rc.local qui pose problème ou le répertoire /BOINC

        quid : peut on mettre le /BOINC/run_client -daemon dans le .bashrc .
        Essayes toujours, à priori ça ne devrait pas poser de problème...

        question : cette mise à jour va être lancé que pour le root ?
        De quoi tu parles ? Qu'appelles-tu "mise à jour" ? Le $PATH ?

        si je créé d'autre utilisateurs qui se trouveront dans le groupe root ? que va t il se passer ?
        Par rapport à quoi ? Au $PATH ?

        1. bonjour
          ça y est mon PATH se met à jour
          super

          par contre mon
          /BOINC/run_client -daemon
          qui se trouve dans le /etc/rc.local
          ne se lance toujours pas ?

          quid : peut on mettre le
          /BOINC/run_client -daemon
          dans le .bashrc .

          question : cette mise à jour va être lancé que pour le root ?
          si je créé d'autre utilisateurs qui se trouveront dans le groupe root ? que va t il se passer ?
          Merci de ton aide
          cordialement
          1. bonjour
            dans quelle section dois je le rajouter
            au debut du fichier ou à la fin ou peut importe ?
            car j'ai pour le moment ceci :

            # .bashrc

            # User specific aliases and functions

            alias rm='rm -i'
            alias cp='cp -i'
            alias mv='mv -i'

            # Source global definitions
            if [ -f /etc/bashrc ]; then
            . /etc/bashrc
            fi

            merci de ton aide précieuse
            un newsbi... de linux
            cordialement
            1. Modérateur
              Essaye de rajouter le répertoire /BOINC à ta variable $PATH dans le fichier /home/$USER/.bashrc :

              PATH="$PATH:/BOINC"
              export PATH

              1. bonjour,

                je viens de me rendre compte que mon répertoire avait comme groupe 1000 1000
                drwxrwxrwx 5 1000 1000 4096 oct 12 11:08 BOINC

                Pour la commande : echo $PATH
                voici le résultat :
                /usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

                Merci de ton aide
                cordialement
                1. bonjour
                  non ce répertoire appartient au groupe root et utilisateur root
                  il n'y a pas d'autre compte de présent pour le moment sur ce serveur
                  Merci de ton aide
                  cordialement
                  1. Modérateur
                    Donc tu te connectes en root ?

                    La commande demandée, on peut avoir le résultat oui ou non ?
                2. Modérateur
                  Tu peux afficher la commande :

                  echo $PATH


                  Est-ce que ton dossier /BOINC a les droits nécessaires pour exécuter les fichiers présents dans son arborescence par un simple utilisateur ?
                  1. bonjour
                    mais chemin ... mon chemin complet est /BOINC
                    car je l'ai installé à la racine de la "partition"
                    donc mon path est bien /BOINC/
                    mon répertoire est en majuscule
                    et mon path ne se met pas à jour via la rc.local ? j'en perd mon latin ???
                    par contre quand je le fais manuellement ça fonctionne ....
                    pour la réponse echo $PATH ça fonctionne j'avais oublié de le mettre en majuscule ... je suis un .......
                    cordialement
                    1. Contributeur
                      bonjour,
                      mais , t'es un peu ..... "chemin" est un exemple il doit etre remplace par le bon repertoire
                      exemple
                      j'ai un fichier qui se trouve dans /home/truc/BOING/ (/home/truc/ remplacant chemin ..)
                      mon PATH sera
                      PATH=$PATH:/home/truc/BOINC/
                      export PATH
                      a+
                      et tu n'a pas de reponse a
                      echo $PATH
                      1. bonjour
                        oui il est bien dans le répertoire : /BOINC
                        donc à la racine
                        cordialement
                        1. Modérateur
                          Répéter le "#!/bin/sh" ne sert à rien ;-\

                          Il est où exactement ton programme ?
                          Le répertoire "/BOINC" est à la racine ?

                          http://www-users.cs.york.ac.uk/embersp/boincfaq.html#q0_3
                          http://linux.boinc-af.org/2008061861/Linux/Pour-les-confirmes/Installer-la-version-5.10.45/Execution-automatique-au-demarrage.html
                          http://www.breizh-ardente.fr/article/logiciels-de-calcul-partage
                          http://www.boinc-af.org/content/view/605/149/
                          1. bonjour
                            /BOINC/run_client &
                            n'a aucune action ....
                            voici l'intégrité de mon fichier d'origine /etc/rc.local

                            #!/bin/sh
                            #
                            # This script will be executed *after* all the other init scripts.
                            # You can put your own initialization stuff in here if you don't
                            # want to do the full Sys V style init stuff.

                            touch /var/lock/subsys/local
                            #!/bin/sh
                            /BOINC/run_client -daemon

                            merci de votre aide
                            cordialement
                            1. bonjour
                              ce qui est bizarre j'ai rajouté les lignes :

                              PATH=$PATH:/chemin/BOINC/
                              export PATH
                              dans le fichier /etc/rc.local
                              et en redémarrant le serveur
                              le path n'est même pas modifié ?
                              est ce normal ?
                              cordialement
                              1. Modérateur
                                Tu veux bien essayer ça (en remplaçant "/chemin" par le bon chemin) :

                                /chemin/BOINC/run_client & 

                                • 1
                                • 2