Comment démarrer automatiquement le script Bash au démarrage sur Raspberry Pi
De nombreux utilisateurs souhaitent que leur Raspberry Pi effectue des tâches sans surveillance, dans le cadre de l’automatisation du Raspberry Pi. Cela réduit les tâches répétitives qui tombent généralement sur les genoux de l’administrateur. Une façon courante de déclencher des événements automatiques est au premier démarrage du Raspberry Pi. Une telle configuration nous permet de démarrer automatiquement un script Bash à chaque premier démarrage du Raspberry Pi.
Dans ce tutoriel, vous allez apprendre différentes façons de démarrer automatiquement un script Bash sur un Raspberry Pi lorsque l’appareil démarre. Cela sera facilité par les minuteries crontab ou systemd, qui sont toutes deux installées par défaut sur Raspberry Pi OS, de sorte que vous n’aurez pas besoin de télécharger ou d’installer d’applications ou de services supplémentaires.
Dans ce tutoriel, vous allez apprendre :
- Comment modifier crontab pour exécuter un script Bash au démarrage
- Comment créer une unité de service Systemd
- Comment faire pour créer un script simple de vérification de l’espace disque
- Comment définir les autorisations sur le fichier d’unité de service Systemd
- Comment définir les autorisations de script
- Comment activer l’exécution de l’unité de service Systemd au démarrage du système
Démarrage automatique du script Bash via crontab sur Raspberry Pi
La première méthode que nous allons passer en revue est probablement la plus simple des deux, car il suffit d’une simple modification dans le fichier crontab
pour configurer notre script Bash afin qu’il soit exécuté automatiquement chaque fois que le Raspberry Pi démarre.
NOTE
Nos options avec crontab
sont un peu rares par rapport à la méthode systemd, donc si vous avez besoin de plus de flexibilité que ce qui est offert par cron, vous pouvez passer à cette section ci-dessous.
-
Commencez par ouvrir un terminal de ligne de commande et exécutez la commande
crontab
. Notez que chaque utilisateur a son propre fichier crontab, alors assurez-vous d’ouvrir l’éditeur avec l’utilisateur sous lequel vous souhaitez exécuter le script.crontab -e
Si c’est la première fois que vous ouvrez crontab, il vous sera demandé quel éditeur vous souhaitez utiliser. La plus simple à utiliser serait nano, alors sélectionnez cette option en cas de doute.
Utilisez la syntaxe suivante pour ajouter le script ou la commande que vous souhaitez que cron exécute à chaque redémarrage. Nous utilisons la déclaration
@reboot
pour indiquer que nous voulons que le script soit exécuté à chaque fois que le Raspberry Pi est démarré :@reboot /home/linuxconfig/myscript.sh
Enregistrez vos modifications et quittez le fichier une fois que vous avez terminé.
Démarrage automatique du script Bash via systemd sur Raspberry Pi
Nous pouvons également utiliser systemd du Raspberry Pi (le système d’initialisation par défaut) pour créer un fichier de service qui est exécuté au démarrage.
Tout d’abord, créez un fichier de service Systemd comme dans l’exemple ci-dessous. Nous stockerons ce fichier sous
le nom /etc/systemd/system/disk-space-check.service
.[Unit] After=network.target [Service] ExecStart=/usr/local/bin/disk-space-check.sh [Install] WantedBy=default.target
Après : indique à systemd quand le script doit être exécuté. Dans notre cas, le script s’exécutera après la connexion réseau. Un autre exemple pourrait être mysql.target etc.
ExecStart : Ce champ fournit un chemin d’accès complet au script réel à exécuter au démarrage
WantedBy : Dans quelle cible de démarrage l’unité systemd doit être installéeCréez un script à exécuter au démarrage du système Raspberry Pi. Comme spécifié à l’étape 1 ci-dessus, le chemin d’accès et le nom du nouveau script dans notre exemple seront
/usr/local/bin/disk-space-check.sh
.
Voici un exemple d’un tel script :#!/bin/bash date > /root/disk_space_report.txt du -sh /home/ >> /root/disk_space_report.txt
-
Définissez les autorisations appropriées pour l’unité de service Systemd et le script :
sudo chmod 744 /usr/local/bin/disk-space-check.sh sudo chmod 664 /etc/systemd/system/disk-space-check.service
Ensuite, activez l’unité de service :
sudo systemctl daemon-reload sudo systemctl enable disk-space-check.service
Vous êtes maintenant prêt à redémarrer votre Raspberry Pi. Une fois le système démarré, vous devriez voir le fichier suivant contenant l’utilisation de l’espace disque dans votre répertoire
/root
:sudo ls /root/ disk_space_report.txt
REMARQUE
Pour plus d’informations sur la création d’une unité de service Systemd, exécutez la commande man systemd.unit
.
Réflexions finales
Dans ce tutoriel, nous avons vu comment démarrer automatiquement un script Bash au démarrage sur un système Raspberry Pi. Il y a deux façons principales de configurer cette configuration, qui impliquent soit cron, soit la création d’un minuteur systemd. Les deux ont leurs propres ajustements supplémentaires qui peuvent être apportés, de sorte que l’un pourrait fonctionner mieux que l’autre, en fonction de votre situation et du script que vous souhaitez exécuter. Les deux sont assez faciles à mettre en place, alors n’hésitez pas à les essayer tous les deux et à voir lequel vous convient le mieux.