Ajouter un programme au démarrage d’Ubuntu (service)

gnome-system-run-64
Il est facile sous Ubuntu d’ajouter un programme au démarrage de l’ordinateur. Ceux ci se lancent avant l’écran de login, et avec des droits root.

Il faut noter la différence avec l’ajout de programmes au démarrage de la session, qui ne se lancent que lorsque l’utilisateur entre son login et mot de passe, qui sont lancés avec les droits de l’utilisateur, et qui se terminent lorsque l’utilisateur ferme la session. Vous pourrez retrouver le tutorial concernant ceci ici: Ajouter un programme au démarrage de la session.

Il faut tout d’abord créer un fichier dans lequel on va lancer l’application que l’on souhaite. Dans mon exemple, je vais lancer netstat, ce qui n’a aucun effet puisqu’il se contente d’écrire des informations au sujet des ports ouverts sur la machine.

Création du script

Il faut donc éditer un fichier, qui doit se trouver dans le répertoire /etc/init.d, et qui va lancer notre programme.

sudo gedit /etc/init.d/mon_service

Dedans, je rentre la commande que je souhaite executer au boot

#!/bin/sh
netstat -an

Ensuite, il faut rendre ce script executable

sudo chmod +x /etc/init.d/mon_service

Modification de la séquence de boot

Enfin, la derniere étape est de l’ajouter au boot

sudo update-rc.d mon_service defaults 80

Cela donne ceci
[See image gallery at blog.cheztoi.net]

Pour le supprimer du boot, il suffit de lancer cette commande

sudo update-rc.d -f mon_service remove

[See image gallery at blog.cheztoi.net]

Pour aller plus loin…

Normalement, ces services doivent prendre en paramètre une de ces commandes:

  • start
  • stop
  • restart

Pour cela, dans le script il suffit de le modifier ainsi

#!/bin/sh
start()
{
     # Mettez ici le démarrage de votre programme
	echo "start"
}

stop()
{
     # Mettez ici un kill sur votre programme
	echo "stop"
}

restart()
{
    stop;
    sleep 1;
    start;
}
case $1 in
start) 
      start;;
stop)
      stop;;
restart)
      restart;;
*)
      start;;
esac

Flattr this!

Vus : 576
Publié par Jos : 18