Lancer un script au démarrage

Fermé
Argrat - Modifié par mamiemando le 12/06/2013 à 10:37
 Argrat - 12 juin 2013 à 21:16
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.

A voir également:

8 réponses

mamiemando Messages postés 33268 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 18 septembre 2024 7 780
12 juin 2013 à 10:39
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
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
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
Utilisateur anonyme
12 juin 2013 à 13:45
salut,

le message est pourtant clair : il manque des informations LSB
LSB Init Scripts
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Je suis un grand novice en Ubuntu et Linux, je ne comprends pas tout ;)
0
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
mamiemando Messages postés 33268 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 18 septembre 2024 7 780
Modifié par mamiemando le 12/06/2013 à 21:07
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
Très bien j'essaierai ça demain. Je te tiens au courant ;)
Merci
0