Utilisation de sysctl

Le réglage des paramètres du noyau dans le répertoire /proc/sys ne doit pas être un processus manuel ou un processus qui nécessite la spécification de valeurs dans un fichier virtuel à l'aide de la commande echo fait à l'aveuglette. La commande sysctl peut faciliter radicalement la visualisation, le réglage et l'automatisation spéciale de paramètres du noyau.

Pour avoir un aperçu rapide de tous les paramètres configurables dans le répertoire /proc/sys, entrez la commande sysctl -a en tant que super-utilisateur. Vous obtiendrez ainsi une longue liste exhaustive ; en voici un court extrait :

net.ipv4.route.min_delay = 2
kernel.sysrq = 0
kernel.sem = 250     32000     32     128

Il s'agit des mêmes informations de base que vous verriez si vous visualisiez chaque fichier individuellement. La seule différence est l'emplacement du fichier. /proc/sys/net/ipv4/route/min_delay est signifié par net.ipv4.route.min_delay, où les barres obliques de répertoire sont remplacées par des points et la portion proc.sys est supposée.

Comme nous l'avons vu à la la section intitulée /proc/sys, vous pouvez assigner manuellement des valeurs aux fichiers pouvant être écrits à l'aide de la commande echo. La commande sysctl vous permet de faire la même chose en entrant la commande sysctl -w <fichier>="<nouvelle-valeur>". Par exemple, si vous voulez activer la touche d'appel système, vous devez entrer la commande suivante :

[root@bleach /]# sysctl -w kernel.sysrq="1"
kernel.sysrq = 1
[root@bleach /]# 

Le réglage rapide de valeurs individuelles comme celle-ci dans /proc/sys est pratique durant des essais, mais ne fonctionne pas aussi bien sur un système de production car tous les réglages spéciaux /proc/sys sont perdus lorsque le système est redémarré. Pour préserver les réglages qui vous plaisent et faire en sorte qu'ils soient permanents pour le noyau, ajoutez-les au fichier /etc/sysctl.conf.

Chaque fois que le système démarre, le script /etc/rc.d/rc.sysinit est exécuté par init. Ce script contient une commande pour exécuter sysctl utilisant /etc/sysctl.conf en tant que valeur à utiliser. Par conséquent, toute valeur ajoutée à /etc/sysctl.conf sera appliquée dès que le système aura terminé de démarrer sans qu'il soit nécessaire de reconfigurer et reconstruire le noyau pour y inclure les modifications.