Gentoo - Calculate : Lancer des scripts personnalisés au démarrage avec OpenRC
Table des matières
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
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/
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.
Voici un exemple de mon dossier /etc/local.d/
Ainsi, lorsque le service local sera démarré, le script 01iptables.start s'exécutera puis 02serveurjeu.start ensuite.
On vérifie avant si le service se démarre :
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 :
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
Et qu'ils soient exécutables :
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