Exécution d’une commande Linux au démarrage

By Corentin BURTIN

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

A lire également :  Comment rechercher des paquets dans Ubuntu

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éthodeComplexitéCompatibilitéAvantages principaux
Systemd (unités)MoyenneDistributions modernesJournalisation, gestion avancée des erreurs
Crontab @rebootFaibleUniverselleFacile à mettre en œuvre
rc.localFaibleAnciennes distrosRapide à configurer, peu verbeux
/etc/init.d/ÉlevéeLegacy (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 !