Vu que je m’arrache les cheveux depuis plusieurs semaines sans comprendre pourquoi ça ne fonctionne pas et que je viens enfin de trouver la solution, je la colle ici :
Mais pourquoi vouloir lancer un truc au démarrage ?
Et bien pour plusieurs raisons :
– sur mon raspberry pi 2 qui sert d’afficheur pour mon docker Magic Mirror ² sur lequel je cherchais à lancer un navigateur en mode kiosque
– sur ma VM headless (machine virtuelle sans interface graphique) qui héberge des services web qui doivent être lancé au démarrage
Les solutions possibles
Plusieurs possibilités pour lancer un script, ou un programme, au démarrage. Les plus à jour sont via systemd et via crontab.
La première solution est un peu complexe à configurer, alors concentrons nous sur la deuxième : le crontab.
Tout d’abord, dans votre terminal (local ou distant), lancez cette commande pour éditer le fichier crontab :
crontab -e
Si vous n’avez jamais accédé au crontab, il vous demande quel est l’éditeur que vous souhaitez choisir. Dans mon cas, c’est le choix n°1 : nano

Le crontab permet d’effectuer des actions à intervalles réguliers. Le principe, c’est que ce programme va vérifier chaque minute s’il a quelque chose à effectuer.
Ce qui nous intéresse ici, c’est qu’il lance un script au démarrage de la machine. Je lui indique donc @reboot
pour lui dire que le reste de la ligne devra être exécuté à chaque démarrage.
Pensez bien à mettre la totalité du chemin absolu vers le script, ou le programme, sinon cela ne fonctionnera pas.
Et dans le script ?
Et bien même chose dans le script : je mets tous les chemins en dur, histoire d’être sûr que je ne passe pas à côté.
#!/bin/bash
export DISPLAY=:0.0
#/usr/bin/firefox --kiosk http://192.168.1.128:8080 > /home/pi/firefox.out 2>&1
/usr/lib/chromium/chromium --kiosk http://192.168.1.128:8080 > /home/pi/chromium.out 2>&1
Petit tip : pour connaitre le chemin d’un programme
sudo find / -name "LeNomduSoft"
La commande export
me permet de spécifier l’affichage sur lequel je veux que soit lancé la commande
La commande
permet d’écrire dans un fichier de sortie le log et les erreurs et ainsi comprendre pour quelle raison cela ne fonctionne pas (dans mon cas l’histoire de l’affichage) .> /home/pi/firefox.out 2>&1
Pour la suite :
Prochaine étape, faire un petit script python pour « faire bouger » la souris sur mon RPi² (qui n’en a pas) afin qu’elle disparaisse en mode kiosk