Je suis toujours fasciné par ce qui se passe dans les coulisses lorsque je démarre un système Linux et que je me connecte. En appuyant sur le bouton d'alimentation d'un système nu ou en démarrant une machine virtuelle, vous déclenchez une série d'événements qui conduisent à un système entièrement fonctionnel, parfois en moins d'une minute. Il en va de même lorsque vous vous déconnectez et/ou arrêtez le système.
Ce qui rend cela plus intéressant et amusant, c'est le fait que vous pouvez faire en sorte que le système d'exploitation exécute certaines actions lorsqu'il démarre et lorsque vous vous connectez ou vous déconnectez.
Dans cet article indépendant de la distribution, nous discuterons des méthodes traditionnelles pour atteindre ces objectifs sous Linux.
Remarque :Nous supposerons l'utilisation de Bash comme shell principal pour les événements de connexion et de déconnexion. S'il vous arrive d'en utiliser une autre, certaines de ces méthodes peuvent ou non fonctionner. En cas de doute, reportez-vous à la documentation de votre shell.
Exécuter des scripts Linux lors du redémarrage ou du démarrage
Il existe deux méthodes traditionnelles pour exécuter une commande ou exécuter des scripts au démarrage :
Méthode 1 – Utiliser une tâche cron
Outre le format habituel (minute / heure / jour du mois / mois / jour de la semaine) largement utilisé pour indiquer un planning, cron scheduler permet également l'utilisation de @reboot
. Cette directive, suivie du chemin absolu vers le script, entraînera son exécution au démarrage de la machine.
Cependant, il y a deux mises en garde à cette approche :
- a) le démon cron doit être en cours d'exécution (ce qui est le cas dans des circonstances normales), et
- b) le script ou le fichier crontab doit inclure les variables d'environnement (le cas échéant) qui seront nécessaires (reportez-vous à ce fil StackOverflow pour plus de détails).
Méthode #2 – Utiliser /etc/rc.d/rc.local
Cette méthode est valable même pour les distributions basées sur systemd. Pour que cette méthode fonctionne, vous devez accorder des autorisations d'exécution à /etc/rc.d/rc.local
comme suit :
# chmod +x /etc/rc.d/rc.local
et ajoutez votre script en bas du fichier.
L'image suivante montre comment exécuter deux exemples de scripts (/home/gacanepa/script1.sh
et /home/gacanepa/script2.sh
) en utilisant un cron travail et rc.local , respectivement, et leurs résultats respectifs.
#!/bin/bash DATE=$(date +'%F %H:%M:%S') DIR=/home/gacanepa echo "Current date and time: $DATE" > $DIR/file1.txtscript2.sh :
#!/bin/bash SITE="Tecmint.com" DIR=/home/gacanepa echo "$SITE rocks... add us to your bookmarks." > $DIR/file2.txt
Gardez à l'esprit que les deux scripts doivent avoir reçu des autorisations d'exécution au préalable :
$ chmod +x /home/gacanepa/script1.sh $ chmod +x /home/gacanepa/script2.sh
Exécuter des scripts Linux à la connexion et à la déconnexion
Pour exécuter un script à la connexion ou à la déconnexion, utilisez ~.bash_profile
et ~.bash_logout
, respectivement. Très probablement, vous devrez créer ce dernier fichier manuellement. Déposez simplement une ligne invoquant votre script au bas de chaque fichier de la même manière qu'avant et vous êtes prêt à partir.
Résumé
Dans cet article, nous avons expliqué comment exécuter un script au redémarrage, à la connexion et à la déconnexion. Si vous pensez à d'autres méthodes que nous aurions pu inclure ici, n'hésitez pas à utiliser le formulaire de commentaires ci-dessous pour les signaler. Nous sommes impatients de vous entendre !