Als Linux-Systemadministrator müssen Sie manchmal das Verhalten des Standardkernels ändern. Beispielsweise müssen Sie möglicherweise den magischen SysRq-Schlüssel aktivieren oder die Anzahl der Verbindungen erhöhen, die der Kernel akzeptiert. Die Kernelparameter können beim Erstellen des Kernels, beim Systemstart oder zur Laufzeit gesetzt werden.
In diesem Artikel wird die Verwendung von sysctl
erläutert Befehl zum Anzeigen und Ändern von Kernelparametern zur Laufzeit.
Verwendung von sysctl
um die Kernel-Parameter anzuzeigen #
Um alle aktuellen Kernelparameter anzuzeigen, rufen Sie sysctl
auf Befehl mit dem -a
Möglichkeit:
sysctl -a
Dadurch wird eine große Liste ausgegeben, die etwa wie folgt aussieht, wobei jede Zeile den Namen des Parameters und seinen Wert enthält:
abi.vsyscall32 = 1
debug.exception-trace = 1
debug.kprobes-optimization = 1
...
Alle Benutzer können die aktuellen Kernelparameter anzeigen; nur der Root-Benutzer kann ihre Werte ändern.
Sie können den Wert eines einzelnen Parameters überprüfen, indem Sie seinen Namen als Argument an sysctl
übergeben . Um beispielsweise den aktuellen Swappiness-Wert zu überprüfen, würden Sie Folgendes eingeben:
sysctl vm.swappiness
vm.swappiness = 60
Swapiness ist eine Linux-Kernel-Eigenschaft, die definiert, wie oft das System den Swap-Speicher verwendet.
Die sysctl
Der Befehl liest die Informationen aus /proc/sys
Verzeichnis. /proc/sys
ist ein virtuelles Verzeichnis, das Dateiobjekte enthält, mit denen die aktuellen Kernelparameter angezeigt und eingestellt werden können.
Sie können einen Parameterwert auch anzeigen, indem Sie den Inhalt der entsprechenden Datei anzeigen. Der einzige Unterschied besteht darin, wie die Datei dargestellt wird. Zum Beispiel sowohl sysctl vm.swappiness
und cat /proc/sys/vm/swappiness
wird die gleiche Ausgabe geben. Bei Verwendung von sysctl
die Verzeichnis-Schrägstriche werden durch Punkte und die proc.sys
ersetzt Teil wird angenommen.
Verwendung von sysctl
um die Kernel-Parameter zu ändern #
Um einen Kernel-Parameter zur Laufzeit zu setzen, führen Sie sysctl
aus Befehl gefolgt vom Parameternamen und -wert im folgenden Format:
sysctl -w parameter=value
Wenn der Wert Leerzeichen oder Sonderzeichen enthält, schließen Sie den Wert in doppelte Anführungszeichen ein. Sie können auch mehrere parameter=value
übergeben Paare im selben Befehl.
Um beispielsweise die IPv4-Paketweiterleitung zu aktivieren, würden Sie Folgendes ausführen:
sysctl -w net.ipv4.ip_forward=1
Die Änderung wird sofort wirksam, ist aber nicht dauerhaft. Nach einem Systemneustart wird der Standardwert geladen.
Um einen Parameter dauerhaft festzulegen, müssen Sie die Einstellungen in /etc/sysctl.conf
schreiben oder eine andere Konfigurationsdatei in /etc/sysctl.d
Verzeichnis:
sysctl -w net.ipv4.ip_forward=1 >> /etc/sysctl.conf
Eine andere Möglichkeit, Parameter zu ändern, ist die Verwendung von echo
Befehl, um die Einstellungen in die Dateien in /proc/sys
zu schreiben Verzeichnis. Anstatt den obigen Befehl auszuführen, können Sie beispielsweise Folgendes verwenden:
echo 1 > /proc/sys/net/ipv4/ip_forward
Das -p
Option können Sie die Einstellungen aus einer Konfigurationsdatei laden:
sysctl -p /etc/sysctl.d/file_name.conf
Wenn keine Datei angegeben wird, sysctl
liest die /etc/sysctl.conf
Datei.
Schlussfolgerung #
Die sysctl
Mit dem Befehl können Sie Linux-Kernel-Parameter anzeigen und ändern.
Fühlen Sie sich frei, einen Kommentar zu hinterlassen, wenn Sie Fragen haben.