Lancer un script au démarrage

Bonjour,

J'ai besoin de pouvoir lancer un script au boot du PC mais je ne sais pas trop comment faire, j'ai suivi ce tuto :
https://blog.cheztoi.net/2009/08/30/ajouter-un-programme-au-demarrage-dubuntu-service/

... mais ça ne fonctionne pas.
Auriez-vous une autre solution ?

Merci de votre aide.

8 réponses

  1. Modérateur
    C'est la bonne manière de faire, donc si ça ne marche pas c'est que tu t'es trompé quelque part. En imaginant que ton script s'appelle /etc/init.d/toto, reporte-nous le résultat de ces commandes :

    ls -l /etc/init.d/toto
    ls -l /etc/rc2.d/toto
    cat /etc/init.d/toto


    Bonne chance
    1. Déjà lors de la commande : sudo update-rc.d rnt.sh defaults 80
      j'obtiens ça :
      update-rc.d: warning: /etc/init.d/rnt.sh missing LSB information
      update-rc.d: see <http://wiki.debian.org/LSBInitScripts>
      Adding system startup for /etc/init.d/rnt.sh ...
      /etc/rc0.d/K80rnt.sh -> ../init.d/rnt.sh
      /etc/rc1.d/K80rnt.sh -> ../init.d/rnt.sh
      /etc/rc6.d/K80rnt.sh -> ../init.d/rnt.sh
      /etc/rc2.d/S80rnt.sh -> ../init.d/rnt.sh
      /etc/rc3.d/S80rnt.sh -> ../init.d/rnt.sh
      /etc/rc4.d/S80rnt.sh -> ../init.d/rnt.sh
      /etc/rc5.d/S80rnt.sh -> ../init.d/rnt.sh

      l'erreur ne doit pas annoncer quelque chose de bon.
      1. Voici ce que j'obtiens avec les lignes que tu m'a donné précédemment :

        root@gram-desktop:/home/RNTNantes# ls -l /etc/init.d/rnt.sh
        -rwxr-xr-x 1 root root 3153 2013-06-12 13:17 /etc/init.d/rnt.sh
        root@gram-desktop:/home/RNTNantes# ls -l /etc/rc2.d/rnt.sh
        ls: ne peut accéder /etc/rc2.d/rnt.sh: Aucun fichier ou dossier de ce type
        1. Je suis un grand novice en Ubuntu et Linux, je ne comprends pas tout ;)
          1. Donc, sinon j'ai bien rajouté le texte en plus au début de mon script, mais toujours rien.
            Mon but est de lancer un script à partir de PuTTy et de fermer la session PuTTy sans que l'exécution du script ne s'arrête, comment faire ?
            Car si la mise du programme au démarrage n'est pas possible ce n'est pas grave.
            Je cherche juste à lancer un programme avec un PC et de pouvoir éteindre ce PC par la suite sans pour autant couper le script.
            1. Modérateur
              Pour régler ton problème d'information LSB, il faut simplement que ton script respecte une structure que tu dois pouvoir retrouver dans /etc/init.d/skeleton, et notamment qu'une en-tête (voir exemple ci-dessous) indique de quel(s) service(s) ton service dépend.

              Exemple : (ici mon script s'appelle /etc/init.d/mando) :

              #!/bin/sh
              
              ### BEGIN INIT INFO
              # Provides:          mando
              # Required-Start:    $remote_fs
              # Required-Stop:
              # Default-Start:     2 3 4 5
              # Default-Stop:
              # Short-Description: patch toshiba
              # Description:       tweak to improve cooling 
              ### END INIT INFO
              
              . /lib/lsb/init-functions
              
              [ -f /etc/default/rcS ] && . /etc/default/rcS
              PATH=/bin:/usr/bin:/sbin:/usr/sbin
              
              case "$1" in
                start)
                      log_begin_msg "Preparing cooling device"
                      echo -n 0 > /sys/devices/virtual/thermal/cooling_device0/cur_state
                      log_end_msg 0
                      ;;
                stop)
                      ;;
                force-reload|restart)
                      $0 start
                      ;;
                status)
                      exit 0
                      ;;
                *)
                      log_success_msg "Usage: /etc/init.d/mando {start|stop|restart|force-reload|status}"
                      exit 1
              esac
              
              exit 0


              Dans ton cas il faut adapter dans le header les champs Provides, Short-Description et Description. Ensuite au niveau du code il faut adapter le start) (et potentiellement les autres cas). Ensuite je te conseille de supprimer le script des répertoires /etc/rc*.d avec une commande du genre :

              sudo update-rc.d mando remove


              Une fois ton script corrigé, lance :

              sudo update-rc.d mando defaults


              Bonne chance
              1. Très bien j'essaierai ça demain. Je te tiens au courant ;)
                Merci