Catégories
Automatisation / scripts Linux

Le crontab : mon script ne se lance pas au démarrage de Linux

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

Au départ, vous n’avez, évidemment, que les lignes bleues

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 > /home/pi/firefox.out 2>&1 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) .

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

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.