9 votes

sysctl vs écrire directement dans /proc/*

Sur une machine linux typique, vous pouvez changer la configuration du noyau en modifiant les fichiers situés à l'adresse suivante /proc/* .

Par exemple, pour l'IPv6 accept_dad d'une interface réseau spécifique (par exemple, eth0 ), vous devez modifier le fichier suivant :

/proc/sys/net/ipv6/conf/eth0/accept_dad

Mais, comme je l'ai récemment découvert, il existe un outil très répandu, sysctl qui a le même but, et fonctionne comme suit :

sysctl -w net.ipv6.conf.eth0.accept_dad=1

Ma question est la suivante : quand faut-il utiliser tel ou tel outil ? Mon instinct me dit que si l'on sait ce que l'on fait, il faut écrire directement dans le fichier, mais que si l'on veut des validations et autres, il faut utiliser sysctl .

Depuis sysctl est encore une autre couche sur quelque chose que nous pouvons contrôler directement, je pense qu'en l'utilisant nous nous exposons à des bogues potentiels qui sont autrement évités en écrivant directement dans les fichiers.

3voto

Grodriguez Points 242

sysctl est un outil pour lire et modifier divers attributs du noyau. Il est disponible dans de nombreux systèmes d'exploitation de type Unix, dont non seulement Linux, mais aussi OpenBSD et FreeBSD, par exemple. sysctl est généralement disponible à la fois comme une commande Shell et comme un appel système.

Sous Linux, le sysctl est en outre exposé dans le cadre de l procfs le système de fichiers virtuel, sous /proc/sys .

Notez que le sysctl syscall est déprécié sous Linux il est recommandé d'utiliser /proc/sys à la place (soit directement, soit par le biais de l'option sysctl Shell).

Références :

1voto

rizidoro Points 1993

sysctl est un utilitaire permettant d'interagir avec /proc . En général, ils accomplissent la même chose. Je suppose qu'il y a quelques années (décennies ?), la seule façon d'ajuster les paramètres du noyau était d'éditer les "fichiers" dans le répertoire /proc à la main et sysctl est apparu plus tard comme un moyen plus civilisé de rechercher et de modifier les paramètres du noyau.

A noter que les modifications dans /proc ne survivent pas à un redémarrage. C'est pratique si vous faites des expériences. Le fichier /etc/sysctl.conf est un endroit pour stocker votre sysctl les changements que vous voulez maintenir à travers le démarrage. Si vous aimez vraiment éditer les fichiers à la place, vous pouvez simplement faire vos changements ici et appeler sysctl -p pour exécuter les changements.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X