Automatiser l’exécution d’une commande Linux au démarrage est un besoin courant pour les administrateurs et utilisateurs avancés. Qu’il s’agisse de lancer un service, de monter un disque ou d’appliquer une configuration réseau, plusieurs méthodes permettent d’y parvenir.
Cet article vous guide pas à pas pour choisir la solution la plus adaptée à votre distribution et à vos besoins.
À retenir :
- Systemd est la méthode la plus flexible pour exécuter une commande Linux au démarrage sur les distributions modernes.
- Crontab @reboot et rc.local restent simples à mettre en œuvre pour les tâches personnelles ou basiques.
- Le choix dépend du type de tâche, des droits nécessaires et du système d’initialisation utilisé.
Automatiser au démarrage avec systemd, le gestionnaire moderne incontournable
“Investir dans des solutions modernes comme systemd, c’est éviter 80 % des erreurs de configuration.”
Alain Bérard, formateur en administration Linux
Systemd est aujourd’hui le standard sur la majorité des distributions Linux (Ubuntu, Fedora, Debian, CentOS…). Pour automatiser l’exécution d’une commande Linux au démarrage, il suffit de créer une unité de service personnalisée.
Créer un fichier de service systemd
Créer un fichier mon_service.service dans /etc/systemd/system/, avec ce contenu :
[Unit]
Description=Exécution automatique de mon script
After=network.target
[Service]
ExecStart=/chemin/vers/mon_script.sh
Restart=on-failure
User=root
[Install]
WantedBy=multi-user.target
Activer et tester le service
Après avoir sauvegardé :
- Rechargez systemd : systemctl daemon-reload
- Activez votre service : systemctl enable mon_service
- Vérifiez l’exécution : systemctl status mon_service
Les méthodes classiques toujours efficaces : cron et rc.local
“Les vieilles méthodes sont parfois les plus fiables.”
Joseph Kermadec, administrateur Debian depuis 1998
Les alternatives comme crontab avec @reboot ou le fichier rc.local
permettent une exécution d’une commande Linux au démarrage simple et rapide.
Utiliser crontab @reboot
- Ouvrir la crontab : crontab -e
- Ajouter : @reboot /chemin/vers/commande.sh
Ce système fonctionne quel que soit le système d’init, même sur des systèmes légers ou embedded.
Relancer cron si nécessaire
sudo service cron restart
Utiliser rc.local avec systemd
Créer le fichier /etc/rc.local
si absent, le rendre exécutable, et y placer vos commandes. Ensuite :
chmod +x /etc/rc.local
systemctl enable rc-local
Tableau comparatif des méthodes d’exécution d’une commande Linux au démarrage
Méthode | Complexité | Compatibilité | Avantages principaux |
---|---|---|---|
Systemd (unités) | Moyenne | Distributions modernes | Journalisation, gestion avancée des erreurs |
Crontab @reboot | Faible | Universelle | Facile à mettre en œuvre |
rc.local | Faible | Anciennes distros | Rapide à configurer, peu verbeux |
/etc/init.d/ | Élevée | Legacy (SysVinit) | Compatible anciens scripts |
Et vous, comment gérez-vous l’exécution d’une commande Linux au démarrage ? Partagez vos méthodes et vos retours d’expérience en commentaire !