Lancer des scripts personnalisés au démarrage

Introduction



Il peut être intéressant de faire démarrer des scripts perso au démarrage du système, ou des commandes magiques pour de la reconnaissance de matériel. Pour cela, on va utiliser le service local


rc.local sous Calculate ?



Beaucoup de distributions Linux possédaient (avant systemd) le fameux fichier /etc/rc.local dans lequel on plaçait toutes nos commandes à exécuter une fois le système Linux booté.
Depuis systemd, il est possible de se créer un service maison pour faire ce qu faisait le rc.local.

Mais sous Gentoo, et donc Calculate Linux, ce fichier n'existe pas. (OpenRC est utilisé)

Tout se passe dans /etc/local.d/


Explications ...



Ce répertoire (/etc/local.d/) contiendra les programmes ou scripts qui doivent être exécutés lorsque le service local est démarré ou arrêté.

Si un fichier de ce répertoire est exécutable et qu'il a une extension .start, il sera exécuté lorsque le service local est démarré. (au démarrage du PC bien souvent)
Si un fichier est exécutable et qu'il a une extension .stop, il sera exécuté lorsque le service local est arrêté. (à l'arrêt du PC)

Les fichiers présents dans ce dossier seront exécutés dans l'ordre alphabétique.


En pratique



Voici un exemple de mon dossier /etc/local.d/

Code BASH :
ls /etc/local.d/
01iptables.start  02serveurjeu.start


Ainsi, lorsque le service local sera démarré, le script 01iptables.start s'exécutera puis 02serveurjeu.start ensuite.


Activer le service local au démarrage



On vérifie avant si le service se démarre :

Code BASH :
rc-update -v | grep local
                local |      default nonetwork


C'est le cas chez moi en mode normal (default) et en mode sans réseau (nonetwork)

Si tel n'est pas le cas, on l'ajoute ainsi :

Code BASH :
rc-update add local default


Les scripts



Les scripts positionnés dans /etc/local.d sont des scripts bash, tout ce qu'il y a de plus classique.

Il suffit donc de les faire commencer par

Code BASH :
#! /bin/bash


Et qu'ils soient exécutables :

Code BASH :
chmod +x /etc/local.d/lescript.start
Cette page a été vue 12231 fois