Ajouter un programme au démarrage d’Ubuntu (service)
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