Les services bien connus de Linux peuvent être ajoutés au démarrage sans aucun problème, car la plupart d’entre eux sont livrés avec leur propre script, ce qui est fait en utilisant les commandes ‘chkconfig’ et ‘systemctl’.
Par exemple, pour ajouter le service ‘Apache httpd’ au démarrage, exécutez l’une des commandes suivantes en fonction de votre gestionnaire de système. De même, vous pouvez ajouter n’importe quel service bien connu selon les besoins au démarrage.
Pour Sys V init system:
# chkconfig --level 35 httpd on
Pour systemd system:
# systemctl enable httpd
Parfois, vous pouvez avoir besoin d’ajouter un script ou une commande ou un service personnalisé au démarrage/à l’amorçage. Si c’est le cas, comment le faire ?
Dans cet article, comprenons comment utiliser les trois méthodes suivantes pour le mettre en œuvre :
- Utiliser /etc/rc.d/rc.local
- Utilisation du fichier crontab
- unité de service systemd
Méthode-1 : Utilisation du fichier /etc/rc.d/rc.local
Le fichier « /etc/rc.local » est traditionnellement exécuté après que tous les services normaux de l’ordinateur aient été démarrés à la fin du processus de passage à un niveau d’exécution multi-utilisateur.
Cette méthode fonctionne également sur le système systemd, et vous devez ajouter l’emplacement de votre script au fichier ‘/etc/rc.d/rc.local’ pour qu’il soit exécuté au démarrage.
S’assurer que le fichier a la permission d’être exécuté.
# chmod +x /etc/rc.d/rc.local
Pour comprendre cela en détail, nous allons créer un script simple comme indiqué ci-dessous, mais vous pouvez créer n’importe quel script selon vos besoins :
# vi /opt/scripts/run-script-on-boot.sh#!/bin/bashdate > /root/on-boot-output.txthostname > /root/on-boot-output.txt
Une fois que le script est prêt, définissez la permission d’exécution comme indiqué ci-dessous :
# chmod +x /opt/scripts/run-script-on-boot.sh
Finalement, ajoutez le script au bas du fichier:
# vi /etc/rc.d/rc.local/opt/scripts/run-script-on-boot.sh
Redémarrez votre système pour le vérifier:
# reboot
Méthode-2 : Utiliser le fichier crontab
cron exécute des travaux planifiés automatiquement dans le backend à une heure spécifique.
Cela peut être facilement accompli en utilisant une chaîne spéciale appelée "@reboot"
avec le travail cron.
@reboot est une chaîne spéciale et permet à l’utilisateur d’exécuter n’importe quelle commande ou script au démarrage (boot time).
Cet exemple exécute le fichier ‘/opt/scripts/run-script-on-boot.sh’ au redémarrage du système.
Nous allons utiliser le même script qui a été créé dans l’exemple ci-dessus. Pour cela, il suffit d’ajouter l’entrée suivante dans le fichier crontab :
# crontab -e@reboot /opt/scripts/run-script-on-boot.sh
Redémarrez votre système pour vérifier cela :
# reboot
Méthode-3 : Utiliser l’unité de service systemd
Cette méthode ne fonctionne que sur le système systemd et elle est très simple.
Pour ce faire, vous devez créer un script de démarrage systemd et le placer dans le répertoire « /etc/systemd/system/ ».
Voici notre exemple de script unitaire de démarrage systemd :
# vi sample-on-boot-script.serviceDescription=Run a Custom Script at StartupAfter=default.targetExecStart=/opt/scripts/run-script-on-boot.shWantedBy=default.target
Une fois que vous avez placé le script unitaire dans l’emplacement systemd, exécutez la commande suivante pour mettre à jour les fichiers de configuration systemd et activer le service :
# systemctl daemon-reload# systemctl enable sample-on-boot-script.service
Redémarrez votre système pour vérifier ceci :
# reboot
Conseils bonus :
Si vous voulez exécuter un script en arrière-plan, vous devez ajouter le symbole de l’esperluette de fin "&"
.
/Path/To/My_Script &
Si vous voulez exécuter la commande en tant qu’utilisateur différent, utilisez le format suivant :
su - $USER -c /Path/To/My_Script
Conclusion
Ce tutoriel aborde brièvement la façon d’ajouter un script ou une commande ou un service personnalisé au démarrage.