Comment lancer automatiquement un programme sur Raspberry Pi ?
Vous pouvez vouloir lancer un script ou un programme au démarrage, mais vous ne voyez pas d’option pour le faire sur Raspberry Pi OS. C’est une question que j’entends souvent, et les méthodes pour le faire ne sont pas intuitives. Dans cet article, je vais vous montrer plusieurs façons d’atteindre cet objectif.
Sur Raspberry Pi OS, la solution la plus simple pour lancer automatiquement un programme au démarrage est d’utiliser le crontab avec l’événement @reboot. Il existe également d’autres méthodes utilisant les systèmes d’init de Linux.
Donc oui, c’est possible, mais vous devrez choisir la solution qui correspond le mieux à vos besoins. Vous pouvez choisir de suivre les “bonnes pratiques” ou simplement de retenir la solution la plus simple (c’est souvent ma préférée). Allons-y !
Si vous débutez avec Raspberry Pi ou Linux, j’ai quelque chose qui peut vous aider !
Téléchargez ma fiche mémo des commandes Linux gratuitement – c’est un guide de référence rapide avec toutes les commandes essentielles dont vous aurez besoin utiliser votre Raspberry Pi. Cliquez ici pour l’obtenir gratuitement !
Méthodes pour exécuter un programme au démarrage
Dans cette première partie, je vais aller directement à l’essentiel : comment lancer un script ou un programme au démarrage.
Pour l’exemple, je vais utiliser mon script de test dans le dossier Desktop, donc /home/pat/Desktop/test.sh.
Vous devrez changer cette ligne en fonction du script ou programme que vous souhaitez exécuter. Si vous n’avez aucune idée de la commande que vous devez saisir, lisez la deuxième partie de ce guide :).
1 – Utiliser Crontab
Cron est un service lancé automatiquement au démarrage qui permet à l’utilisateur d’exécuter des tâches planifiées. Un crontab est un fichier qui nous permettra de lister ce que nous voulons exécuter et quand le démarrer, dans un format compréhensible par le service cron.
Le crontab a de nombreux paramètres pour lancer un script à une heure ou un calendrier spécifique (quotidien, hebdomadaire, 3 fois par mois, etc.). J’ai écrit un autre article sur la planification des tâches que vous pouvez consulter pour en savoir plus.
Le crontab nous donne également l’option de lancer un programme au démarrage, avec l’option @reboot.
C’est notre première solution pour démarrer un programme automatiquement, et c’est probablement la plus facile à retenir de cette liste.
Voici comment lancer un programme au démarrage avec crontab :
- Ouvrez un terminal.
- Ouvrez le fichier crontab :
crontab -e
Si c’est votre première fois dans le crontab, vous devez sélectionner un éditeur (appuyez sur Enter pour nano). - Vous commencerez avec un fichier crontab vide qui ressemble à ceci :
- Ajoutez une ligne commençant par @reboot, suivie de la commande de votre script, comme ceci :
@reboot /home/pat/Desktop/test.sh
- Enregistrez et quittez (CTRL+O, CTRL+X avec nano).
(Si vous êtes nouveau dans ce domaine, j’ai un guide qui vous montre les commandes et raccourcis les plus importants dans Nano.)
Votre commande est maintenant programmée pour se lancer à chaque démarrage.
Si les commandes Linux ce n’est pas trop votre truc, n’hésitez pas à jeter un œil à cet article qui vous explique les commandes qu’il faut absolument connaître. Je vous donne aussi une antisèche à télécharger pour les avoir toujours sous la main !
2 – Placer votre script dans /etc/init.d
La deuxième solution que vous pouvez utiliser consiste à placer votre script dans le répertoire /etc/init.d.
Format PDF pratique, avec les 74 commandes à retenir pour maîtriser son Raspberry Pi.
Télécharger maintenant
Je préfère généralement cette méthode pour quelque chose comme un service (comme pour mon script de pare-feu, comme expliqué ici). Comme je l’ai mentionné précédemment, ce n’est pas une bonne pratique si vous voulez respecter les directives Linux, mais ça fonctionne :).
Cependant, il y a encore un format à suivre pour que cela fonctionne correctement au démarrage.
Voici comment faire :
- Créer un nouveau fichier dans /etc/init.d :
sudo nano /etc/init.d/myservice
Changez le nom du fichier pour le rendre explicite. - Collez ces lignes (par exemple) :
#!/bin/bash
### BEGIN INIT INFO
# Provides: MyService
# Required-Start: $all
# Required-Stop:
# Default-Start: 5
# Default-Stop: 6
# Short-Description: Your service description
### END INIT INFO
touch /home/pat/myservice_test
- Les commentaires au début sont obligatoires pour le démarrage au boot (runlevel 5).
Changez le nom du service et la description pour expliquer ce que votre script doit faire. - Enregistrez et quittez (CTRL+X).
- Ajoutez la permission d’exécution à votre script :
sudo chmod +x /etc/init.d/myservice
- Enfin, informez le système de le démarrer au boot en utilisant cette commande :
sudo update-rc.d myservice defaults
C’est le minimum pour que cela fonctionne. Le but ici est simplement de lancer un script au démarrage. Redémarrez pour essayer. Si tout est correct, votre script devrait s’exécuter une fois à chaque démarrage de votre Raspberry Pi.
Si vous souhaitez configurer cela plus correctement, vous pouvez ajouter des options de démarrage, d’arrêt et de redémarrage à votre service. Vous pouvez trouver une documentation détaillée ici si c’est ce que vous voulez faire.
3 – Créer un service systemd
La troisième option consiste à créer un service systemd.
Pour certaines personnes, il s’agit de la manière la plus correcte. Elle vous permet de contrôler votre programme en utilisant la commande ‘systemctl’, tout comme vous le feriez pour d’autres services comme VNC, Nginx, ou cloudflared. Cependant, il a un format spécifique que vous devez suivre ci-dessous.
Voici comment créer un service systemd qui s’exécute au démarrage :
- Créez un fichier dans /lib/systemd/system :
sudo nano /lib/systemd/system/mytest.service
- Copiez les lignes suivantes :
[Unit]
Description=MyService
After=multi-user.target
[Service]
Type=idle
ExecStart=/home/pat/Desktop/test.sh
[Install]
WantedBy=multi-user.target
- Modifiez ExecStart et saisissez le chemin complet de votre commande, et Description pour se rappeler de quoi il s’agit.
- Enregistrez et quittez (CTRL+X).
- Modifiez les permissions du fichier de service pour correspondre aux autres services système :
sudo chmod 644 /lib/systemd/system/mytest.service
- Enfin, indiquez à systemd de l’exécuter au démarrage :
sudo systemctl enable mytest.service
C’est tout ! Lorsque vous redémarrez, votre programme devrait s’exécuter après que tous les services système clés aient démarré.
4 – Ajouter une ligne à /etc/rc.local
Enfin, la méthode rc.local est probablement la plus simple car vous devez juste vous souvenir du nom du fichier pour savoir quoi faire :).
Le fichier rc.local est un script destiné à l’administrateur système (vous !).
Au démarrage, c’est l’une des dernières choses exécutées (à la fin du niveau d’exécution multi-utilisateurs).
Donc, c’est exactement ce dont vous avez besoin pour exécuter un service personnalisé.
Voici comment l’utiliser :
- Ouvrir le fichier rc.local :
sudo nano /etc/rc.local
- Insérer le script ou le service juste avant la ligne “exit 0”
Quelque chose comme ceci : - N’oubliez pas le caractère esperluette(&) à la fin, sinon cela pourrait ne pas fonctionner !
- Enregistrer et quitter (CTRL+X).
C’est terminé, vous n’avez plus rien à faire. Vous pouvez redémarrer maintenant pour essayer si vous le souhaitez.
Trouver la commande pour le démarrage automatique
Avant d’essayer de démarrer automatiquement un programme au démarrage, vous pourriez avoir besoin d’aide pour savoir exactement quoi exécuter.
Malheureusement, Raspberry Pi OS n’inclut pas d’outil pour démarrer les applications au démarrage, donc vous devrez trouver la commande qui lance le programme. Dans cette section, je vais passer en revue trois façons de la trouver.
Fournir le chemin de votre script
Si votre objectif est d’exécuter un script au démarrage, la commande est facile à trouver : c’est le chemin vers le script.
Par exemple, disons que vous avez créé un script qui réside dans /usr/local/bin avec le nom start_script.sh.
Pour qu’il s’exécute au démarrage, assurez-vous que votre script est exécutable. Vous pouvez ajouter la permission avec :chmod +x /usr/local/bin/start_script.sh
Maintenant, vous pouvez entrer cette commande dans l’une des solutions ci-dessus pour l’exécuter au démarrage :/usr/local/bin/start_script.sh
Format PDF pratique, avec les 74 commandes à retenir pour maîtriser son Raspberry Pi.
Télécharger maintenant
Trouver l’exécutable
Une deuxième option est d’exécuter une commande exécutable au démarrage. C’est une solution facile si vous savez exactement ce que vous voulez faire. La seule difficulté que vous pourriez rencontrer concerne le chemin.
Chaque commande (htop, nano, mail, etc.) est installée à un emplacement spécifique sur votre système (/usr/local/bin, /usr/bin, etc.). La plupart des commandes système s’exécuteront correctement au démarrage même si vous ne spécifiez pas de chemin.
Mais pour certains programmes, comme des projets GitHub moins connus ou des choses comme ça (je pense à Log2Ram par exemple), ce n’est pas le cas. Au lieu de cela, vous devez fournir le chemin complet.
Si vous n’avez aucune idée de l’emplacement de l’exécutable, voici quelques conseils.
Vous pouvez utiliser la commande “which” pour le trouver :which <COMMANDE>
Voici un exemple :
Maintenant que vous avez trouvé le chemin, vous pouvez entrer “/usr/bin/php” dans votre fichier de démarrage automatique.
Si “which” n’a pas fonctionné, la commande “find” peut être utile pour trouver un programme :sudo find / -iname php
Si vous avez besoin de plus de détails à ce sujet, vous devriez probablement lire mon autre article ici : 3 Commands to Search For a File on Raspberry Pi (and find it!)
Voir le raccourci du menu
Ma dernière méthode fonctionne pour les programmes graphiques que vous exécutez directement depuis le menu principal de Raspberry Pi OS. Comme vous ne pouvez pas voir l’emplacement du raccourci, il est difficile de trouver le fichier exécutable.
Mais il y a un moyen facile de le localiser :
- Dans le menu principal, allez dans Preferences > Main Menu Editor.
- Sélectionnez l’application que vous souhaitez démarrer.
Elles sont triées de la même manière que dans le menu principal, donc naviguez dans les catégories principales si nécessaire. - Ensuite, cliquez sur “Properties” à droite.
- Une fenêtre s’affiche avec les propriétés du lanceur.
Dans le champ Command, vous pouvez voir la commande exacte utilisée lorsque vous cliquez dessus dans le menu principal.
Vous avez maintenant tout ce dont vous avez besoin pour appliquer l’une des quatre solutions que nous avons discutées précédemment.
Si vous avez besoin de l’emplacement du chemin, consultez mon astuce précédente avec la commande which.
Format PDF pratique, avec les 74 commandes à retenir pour maîtriser son Raspberry Pi.
Télécharger maintenant
Rappel: J'ai crée une communauté d'utilisateurs de Raspberry Pi qui vous permet de partage vos avancées, poser vos questions et recevoir de nombreux avantages exclusifs (anglophones uniquement). Cliquez sur le lien pour en savoir plus.
Conclusion
Voilà, vous connaissez maintenant quatre façons de lancer automatiquement un programme au démarrage. Choisissez la solution que vous préférez en fonction de votre programme, ou peut-être choisissez simplement la méthode dont vous vous souvenez le plus facilement.
Si vous connaissez d’autres méthodes, plus faciles ou non, je serais ravi de les connaître. Veuillez laisser un message dans la communauté.
Vous êtes maintenant prêt à créer vos propres scripts et à les programmer pour qu’ils s’exécutent au démarrage ! Si vous avez besoin de plus d’aide sur le côté programmation des choses, j’ai quelques articles qui vous attendent :
- Les 7 meilleurs éditeurs de texte pour programmer sur Raspberry Pi
- Devriez-vous apprendre Linux ou Python en premier ? (en anglais)
- 15 projets amusants sur Raspberry Pi pour expérimenter avec Python (en anglais)
Format PDF pratique, avec les 74 commandes à retenir pour maîtriser son Raspberry Pi.
Télécharger maintenant
Ressources supplémentaires pour votre Raspberry Pi
Initiation au Raspberry Pi en vidéo
Si vous débutez et voulez passer rapidement à la vitesse supérieure, j’ai exactement ce qu’il vous faut.
Regardez ma formation vidéo qui vous aidera à démarrer du bon bien, choisir votre matériel, installer les meilleures applications et vous lancer directement dans vos premiers projets avec mon aide.
Regarder les vidéos dès maintenant
Maîtrisez votre Raspberry Pi en 30 jours
Vous avez besoin de plus ? Si vous êtes à la recherche des meilleures astuces pour devenir expert sur Raspberry Pi, ce livre est fait pour vous. Développez vos compétences sous Linux et pratiquez via de nombreux projets en suivant mes guides étape par étape. 10% de remise aujourd’hui !
Télécharger le livre au format PDF ici
Maîtrisez Python sur Raspberry Pi
Pas besoin d’être un génie pour coder quelques lignes pour votre Raspberry Pi.
Je vous apprends juste ce qu’il faut sur Python afin de réaliser n’importe quel projet. La seconde partie du livre est d’ailleurs consacrée à des exemples de projets où je vous guide pas à pas.
Ne perdez pas de temps, apprenez le strict nécessaire et économisez 10% avec ce lien :
Télécharger maintenant
Autres ressources pour profiter de votre Raspberry Pi
J’ai regroupé toutes mes recommandations de logiciels, sites utiles et de matériel sur cette page de ressources. Je vous invite à la consulter régulièrement pour faire les bons choix et rester à jour.
Visiter les pages ressources