Sysctl

De Diablotins.org.


Sysctl, ou comment piloter le noyau et ses annexes
Image:brush.png
Ce processus vous permet de commander au noyau, par le biais de certaines variables. Ces variables représentent l'état du noyau que vous pourrez consulter voire modifier.


Ainsi, vous pouvez, à la volée, altérer le comportement de diverses fonctions du noyau, les mémoires (vive ou virtuelle), les systèmes de fichiers, les caches, les piles IP, les périphériques, les interfaces Ethernet et 802, etc.

Plus particulièrement, FreeBSD propose des paramètres pour la gestion des processus, des jails et autres configuration au plus près de la mémoire.



Sommaire

Fonctionnement

La commande sysctl(8) en elle même est rarement utilisée, elle permet surtout de faire quelques expériences et d'éviter de re-démarrer le système.
En effet, la configuration est essentiellement initialisée lors de la lecture de sysctl.conf(5) ou modifiée par le biais d'autres scripts ou configurations comme /etc/rc.conf.
Pour représenter plus aisément la liste des variables du noyau accessibles, le système constitue une base de données ( Management Information Base) organisée en arbre dont chaque branche définit une fonction ou rubrique de fonctions, pour accéder à la variable du noyau.
L'identifiant de la variable (Object IDentifier) ou «clef» se décompose alors en sections séparées par des points; ainsi:

Catalogue.Rubrique.Section.fonction

Toutes ces clefs ne sont pas accessible en écriture, certaines ne sont là qu'à titre d'information.

sysctl.conf

Le système lit sysctl.conf(5) au démarrage pour initialiser ses clefs. Sa structure est simple, chaque ligne contient une clef et une valeur d'initialisation pour celle-ci:

Catalogue.Rubrique.Section.fonction=valeur

/sbin/sysctl

Entrez simplement:

sysctl clef            Retourne la clef et sa valeur.
sysctl -a              Retourne la liste des clefs «visibles».
sysctl -d variable     Description de la clef.
sysctl clef=valeur     Affecte une valeur.
sysctl -n clef         Retoune la valeur de la clef, pratique dans les scripts

Si vous avez modifié une clef, la sortie représente le changement d'état sous la forme:

# sysctl Chapitre.Section.SousSection.Variable=1
Chapitre.Section.SousSection.Variable: 0 -> 1        
La clef est passée de l'état «0» à «1»

Vous lirez dans d'ancien articles, le drapeau “-w” pour mettre à jour une variable.Il est désormais ignoré.

En savoir plus

Projets :