Lancer un script au démarrage

Argrat -  
 Argrat -
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. mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   7 944
     
    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
    0
  2. Argrat
     
    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.
    0
  3. Argrat
     
    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
    0
  4. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  5. Argrat
     
    Je suis un grand novice en Ubuntu et Linux, je ne comprends pas tout ;)
    0
  6. Argrat
     
    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.
    0
  7. mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   7 944
     
    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
    0
  8. Argrat
     
    Très bien j'essaierai ça demain. Je te tiens au courant ;)
    Merci
    0