Lancer script perl au démarrage

Bonjour,

Je vous contacte car je cherche un moyen de lancer un script perl automatiquement au démarrage..

Mon script se situe :
/root/Cyberjeu/cyber.pl

J'ai déjà tenter de créer un lien vers le dossier root/Startup/, en mettant perl "$@" dans fixer l'action mais au démarrage ça ne se lance pas.
Par contre quand je clique sur le lien, le script se lance...

Pour informations supplémentaires, je tourne avec une distribution linux "toutou linux"

En vous remercient à l'avance de votre précieuse aide .

Pierrot
Configuration: Toutou linux

15 réponses

Résumé de la discussion

Lancement automatique d'un script Perl au démarrage sur Toutou Linux: le script /root/Cyberjeu/cyber.pl ne se déclenche pas via rc.local ni via un lien dans Startup, alors qu'il s'exécute manuellement. Les échanges pointent vers un problème de chemin d'interpréteur et de syntaxe: /bin/perl n'existe pas, d'où le message bad interpreter; il est recommandé soit d'utiliser un shebang correct soit d'appeler explicitement perl. D'autres éléments utiles montrent que des fautes dans rc.local, des chemins mal formés ou des besoins d'environnement graphique bloquent l'exécution au démarrage, alors que l'exécution directe avec perl peut fonctionner et révéler les erreurs présentes.

Bobot (l’IA à votre service)
  1. Please need help !!

    Je ne sais pas ce qu'il faut que je fasse en plus ! Pour le lancer au démarrage.

    Merci !
    1. Modérateur
      Salut,

      Tu as un fichier /etc/rc.local ?!
      1. je regarde tout de suite !
      2. Oui j'en ai un etc/rc.d/rc.local

        Qu'est ce que je dois modifier ?

        Merci d'avance :)
    2. Modérateur
      Re,

      En root
      echo '/root/Cyberjeu/cyber.pl' >> /etc/rc.local

      Normalement le script sera exécuter au prochain démarrage.
      1. Je te tiens au courant merci
      2. Ca ne marche pas !!!

        Je suis aller voir dans etc/rc.d/rc.local et la ligne /root/Cyberjeu/cyber.pl y est bien présent

        Que dois je faire ...
    3. Modérateur
      Re,

      Que dois faire ton script?!
      Si ce n'est pas confidentiel (un script Perl ne devrait pas l'être) tu peux l'afficher.

      Affiche le résultat des commandes
      ls -l /root/Cyberjeu/cyber.pl 
      find /etc -name '*rc.local' -ls 2>/dev/null

      1. biensur attends je te prépare ca
      2. #ls -l /root/Cyberjeu/cyber.pl
        -rw-r--r-- 1 root root 2421 2008-11-25 13:19 /root/Cyberjeu/cyber.pl
        #
        #find /etc -name '*rc.local' -ls 2>/dev/null
        525 4 -rw-r--r-- 1 root root 145 nov 16:56 /etc/rc.d/rc.local
        #

        le script est :

        #!/bin/perl

        # Dossier courant
        my $homedir = "/root/Cyberjeu/";
        my $etape = "Etape1/index.html";

        # Variables
        my $seuil = -80; # Puissance minimale de la borne

        my $etape2 = 0;
        my $etape3 = 0;
        my $etape4 = 0;
        my $etape5 = 0;
        my $etape6 = 0;
        my $etape7 = 0;

        my @A;
        my @A;

        &config;

        `firefox $homedir$etape`;

        etc....
      3. En gros quand je lance une page html quand on s'approche d'une borne wifi
    4. Modérateur
      Re,

      Affiche le résulat de
      whereis perl
      cat /etc/rc.local
      Tape aussi
      chmod -v 0755 /root/Cyberjeu/cyber.pl 

      1. J'ai fait une manip il veut pas redemarrer je te contacte des que j'ai réussi
      2. Quand je tape whereis perl : il me retourne une erreur command bash not found mais je suis sur que perl est bien installé car quand je le lance manuellement "perl cyber.pl" ca marche nikel!

        Quand je tape cat etc/rc.local: il me met aucun fichier n'est présent

        Quand je tape cat etc/rc.d/rc.local: il m'affiche
        #this is called from rc.sysinit
        #you can edit this file
        #When firewall is installed, will append lines to this file...
        modprobe evdev
        /root/Cyberjeu/cyber.pl
        #
        #

        Voila j'attends de tes lumières et merci encore pour ton aide
      3. Bonjour,

        Alors il y a une solution !!! Je commence à désespérer :(
    5. Modérateur
      Salut,

      Avant de désésperer tape cette commande
      chmod -v 0755 /root/Cyberjeu/cyber.pl 
      --
      106485010510997108
      1. Bonjour Lami20j

        J'ai déjà essayé cela hier soir, tu me l'avais demandé.... Mais toujours pareil

        Hier soir Toutou Linux ne démarrait plus car j'avais ajouté dans /etc/rc.d/rc.local

        perl /root/Cyberjeu/cyber.pl au lieu de laisser ce que tu m'avais mis /root/Cyberjeu/cyber.pl
    6. Modérateur
      Salut,

      Tape en root
      echo "salut" >>  /etc/rc.d/rc.local
      chmod -v 0755  /etc/rc.d/rc.local 
      /etc/rc.d/rc.local 
      et affiche le résultat.
      --
      106485010510997108
      1. Réponse :

        : bad interpreter: Aucun fichier ou répertoire de ce type
        /etc/rc.d/rc.local: line 6: salut: command not found
    7. Modérateur
      Oups, je me suis trompé.
      Ouvre un editeur de texte et modifie.
      Dans /etc/rc.d/rc.local tu dois avoir echo "salut" et pas "salut".
      1. Dans le rc.local

        J'ai à la ligne 6 : salut

        Quand je le change en echo "salut"
        et que je tape /etc/rc.d/rc.local

        Il m'affiche
        : bad interpreter: Aucun fichier ou répertoire de ce type
        salut
    8. Modérateur
      Re,

      Affiche
      cat /etc/rc.d/rc.local 
      ls -l /etc/rc.d/rc.local 
      --
      106485010510997108
      1. Ca m'affiche

        /root/Cyberjeu/cyber.pl
        echo "salut"

        et la 2ème commande

        -rwxr-xr-x 1 root root 173 2008-11-26 11:09 /etc/rc.d/rc.local
      2. J'ai repéré l'erreur précédente

        j'avais fait la faute de frappe suivante dans rc.local /root/Cyberjeu//cyber.pl

        Je l'ai corrigée en /root/Cyberjeu/cyber.pl

        Redémarrer mais toujours rien !
    9. Modérateur
      Re,

      Affiche s'il te plaît le résultat de la commande
      /etc/rc.d/rc.local 
      --
      106485010510997108
      1. Je voulais tout d'abord te remercier pour le tps que tu passes avec moi merci !!!

        voila ce que ca me donne maintenant

        #cat /etc/rc.d/rc.local
        modprobe evdev
        /root/Cyberjeu/cyber.pl
        echo "salut"
        #
        #/etc/rc.d/rc.local
        : bad interpreter: Aucun fichier ou repertoire de ce type
        salut
        #
        #
    10. Modérateur
      Affiche le resultat de
      ls -l /usr/bin/perl
      1. voila le résultat:

        lrwxrwxrwx 1 root root 9 2008-11-02 03:16 /usr/bin/perl -> perl5.8.8
    11. Modérateur
      Au début de ton script mets

      #!/usr/bin/perl 
      
      ensuite essaie à nouveau les commandes
      chmod -v 0755 /root/Cyberjeu/cyber.pl 
      /etc/rc.d/rc.local 

      1. Malheureusement c'est toujours pareil :(
        Mon cas semble désespéré non ?
      2. Information qui pourrait t'intéresser

        je mets perl /root/Cyberjeu/cyber.pl dans le rc.local

        et quand je tape

        #/etc/rc.d/rc.local

        le script se lance !!!!

        Par contre c'est ce que j'avais fait hier soir et j'avais pas réussi à rlancer toutou linux!!!

        Ca te parait correct de faire ca ou c'est du bricolage qui ne vas pas marcher ?
    12. Modérateur
      Tu me dis que c'est toujous pareil. Mais je ne peux pas le savoir puisque je ne suis pas dévant ta machine

      Ce que j'ai besoin de savoir c'est :
      -si au démarrage de ton pc tu vois salut qui s'affiche à l'écran
      - quand tu exécutes à la main ton script perl ça se passe quoi exactement?
      Essaie de l'exécuter avec la commande /root/Cyberjeu/cyber.pl et dit déjà si ça marche
      1. Voila excuse, je me rends pas compte des difficultés que t'as quand on n'est pas devant le pc

        1__ salut n'apparait pas au démarrage de la machine

        2__ quand j'execute manuellement (c'est à dire quand je tape dans le terminal perl cyber.pl) le script il ouvre une page firefox avec une animation explicant les règles du jeu.

        3__ quand je lance /root/Cyberjeu/cyber.pl il me renvoie
        : bad interpreter: Aucun fichier ou répertoire de ce type

        Par contre quand j'ajoute perl devant /root/Cyberjeu/cyber.pl, le script se lance et ouvre une page firefox

        et quand j'ajout perl dans le rc.local ca lance une page firefox quand je tape /etc/rc.d/rc.local
    13. Modérateur
      Tu ne m'as toujours pas dit si tu as fait cette commande
      chmod -v 0755 /root/Cyberjeu/cyber.pl 


      Tu ne m'as dit non plus si tu as fait la modif au début de ton script (je pense que non et ce n'est pas bien ça)
      donc #!/usr/bin/perl au lieu de #!/bin/perl

      Affiche sans faire aucune modification
      head -2 /root/Cyberjeu/cyber.pl

      Pour répondre à la question, non ce n'est pas de bricolage.

      Quand tu tapes perl script.pl en fait l'interpreteur perl se charge de l'exécution de script même si les droit d'exécutions ne sont pas mises correctement ou que le shebang n'est pas correct.

      D'ailleurs c'est pour ça que tu as eu un message d'erreur : bad interpreter: Aucun fichier ou répertoire de ce type puisque en exécutant la commande /etc/rc.d/rc.local l'interpreteur c'est la commande /root/Cyberjeu/cyber.pl qui s'exécutait et comme /bin/perl n'existe pas ....

      Tu peux exécuter directement /root/Cyberjeu/cyber.pl dans une console et tu verras que tu as le message d'erreur.
      1. J'ai bien fait la modification chmod -v 755

        j'ai aussi modifier le script #!/usr/bin/perl mais quand je tape /root/Cyberjeu/cyber.pl il m'affiche : bad interpreter

        Quand je tape head -2 /root/Cyberjeu/cyber.pl
        #!/usr/bin/perl

        #

        Je vais tenter un redémarrage et je te tiens au courant ! Merci pour ta patience