Der Systemaufruf sysctl(2) hat mit dem Kommando sysctl(8) nichts zu tun. Letzteres nutzt bereits das proc Filesystem und nicht etwa den Systemaufruf. Auch mit den Konfigurationsdateien /etc/sysctl.conf bzw. /etc/sysctl.d/*.conf hat der Systemaufruf nichts zu tun.
Ist also "sysctl -a" auch nur ein "Systemaufruf sysctl(2)" und nicht ein "Kommando sysctl(8)"? – Bei mir wird angezeigt: $ sysctl -V sysctl from procps-ng 3.3.9
Hat das also gar nichts mit dem "sysctl" zu tun, wovon in Kernel 5.5 die Rede ist?
sysctl(2) ist ein Systemaufruf im Kernel auch syscall genannt. Dieser wird nun abgeschafft. sysctl(8) ist ein Kommando. Dieses Kommando verwendet das Proc-Filesystem, hat mit mit dem Systemaufruf sysctl(2) nichts zu tun und wird daher auch weiter funktionieren.
Dieser Beitrag wurde 1 mal editiert. Zuletzt am 28. Nov 2019 um 16:49.
Insbesondere, wenn es um Skripte zur Netzwerkkonfiguration geht, kommt den Leuten gerne bis heute noch in den Sinn, nicht das sysctl-Kommando zu nutzen oder die sysctl-Konfiguration anzupassen, sondern direkt mit dem echo-Kommando Werte in die virtuellen Dateien in /proc/sys/net/* hineinzuschreiben.
Wird man in Zukunft kläglich scheitern, wenn man versucht, IP-Forwarding mittels: "echo 1 > /proc/sys/net/ipv4/ip_forward" einzuschalten?
Manche Leute machen eben alles so, wie sie es mal vor 20 Jahren gelernt haben, wobei es vergebliche Mühe ist, ihnen das auszureden.
Als Alternative steht das direkte Lesen und Schreiben von Werten im Verzeichnis /proc/sys im virtuellen proc-Dateisystem zur Verfügung.
sowie
Das Programm sysctl, das es wie der Systemaufruf ermöglicht, die Dateien in /proc/sys zu lesen und zu ändern, bleibt unverändert bestehen, so dass sich für die Anwender nichts ändert.
Es geht bei der Änderung also allein um Systemaufruf sysctl(2), nicht um sysctl(8), wie es im Artikel und in diesem Kommentar bereits explizit erwähnt wurde.
Unter Anderem werden dadurch Skripte, die direkt auf /proc/sys/net zugreifen, nicht obsolet. Ein Versuch mittels echo 1 > /proc/sys/net/ipv4/ip_forward IP-Forwarding einzuschalten, sollte nach dieser Änderung weiterhin wie gehabt funktionieren und nicht kläglich scheitern.
Sind Eintragungen in der Datei: /etc/sysctl.d/ auch davon betroffen?
Also z.B. " sysctl vm.swappiness=25"?
Nein, die Anwendung sysctl funktioniert weiterhin.
Ist im letzten Satz vom Artikel auch beschrieben.
Das ist gängige Praxis, nach Änderung der Parameter diese mit dem Aufruf -p ohne Reboot aktiv zu machen.
8ung, da gibt es einen Unterschied zwischen Kernelaufruf vs Programm.
Programm:
http://man7.org/linux/man-pages/man8/sysctl.8.html
Aufruf/Kernel Funktion:
http://man7.org/linux/man-pages/man2/sysctl.2.html
Es ist Zweiteres ist geplant abzubauen.
Versuch es mit basics verstehen, dann begreift du das Wort syscall in der headline und in Folge verstehst du vielleicht sogar den Artikel
Der Systemaufruf sysctl(2) hat mit dem Kommando sysctl(8) nichts zu tun. Letzteres nutzt bereits das proc Filesystem und nicht etwa den Systemaufruf. Auch mit den Konfigurationsdateien /etc/sysctl.conf bzw. /etc/sysctl.d/*.conf hat der Systemaufruf nichts zu tun.
OK, danke //Verwirrung Ende
Ist also "sysctl -a" auch nur ein "Systemaufruf sysctl(2)" und nicht ein "Kommando sysctl(8)"?
–
Bei mir wird angezeigt:
$ sysctl -V
sysctl from procps-ng 3.3.9
Hat das also gar nichts mit dem "sysctl" zu tun, wovon in Kernel 5.5 die Rede ist?
Also nochmal:
sysctl(2) ist ein Systemaufruf im Kernel auch syscall genannt. Dieser wird nun abgeschafft.
Dieser Beitrag wurde 1 mal editiert. Zuletzt am 28. Nov 2019 um 16:49.sysctl(8) ist ein Kommando. Dieses Kommando verwendet das Proc-Filesystem, hat mit mit dem Systemaufruf sysctl(2) nichts zu tun und wird daher auch weiter funktionieren.
Danke! Jetzt ist es klar.
Insbesondere, wenn es um Skripte zur Netzwerkkonfiguration geht, kommt den Leuten gerne bis heute noch in den Sinn, nicht das sysctl-Kommando zu nutzen oder die sysctl-Konfiguration anzupassen, sondern direkt mit dem echo-Kommando Werte in die virtuellen Dateien in /proc/sys/net/* hineinzuschreiben.
Wird man in Zukunft kläglich scheitern, wenn man versucht, IP-Forwarding mittels: "echo 1 > /proc/sys/net/ipv4/ip_forward" einzuschalten?
Manche Leute machen eben alles so, wie sie es mal vor 20 Jahren gelernt haben, wobei es vergebliche Mühe ist, ihnen das auszureden.
Im Artikel steht:
sowieEs geht bei der Änderung also allein um Systemaufruf
sysctl(2)
, nicht umsysctl(8)
, wie es im Artikel und in diesem Kommentar bereits explizit erwähnt wurde.Unter Anderem werden dadurch Skripte, die direkt auf
/proc/sys/net
zugreifen, nicht obsolet. Ein Versuch mittelsecho 1 > /proc/sys/net/ipv4/ip_forward
IP-Forwarding einzuschalten, sollte nach dieser Änderung weiterhin wie gehabt funktionieren und nicht kläglich scheitern.Betreutes Lesen...