Provided by: manpages-de-dev_4.23.1-1_all bug

BEZEICHNUNG

       swapon,  swapoff - Auslagerung von Hauptspeicherbereichen (Swapping) auf ein Gerät oder in
       eine Datei starten/beenden

BIBLIOTHEK

       Standard-C-Bibliothek (libc, -lc)

ÜBERSICHT

       #include <sys/swap.h>

       int swapon(const char *pfad, int swap_schalter);
       int swapoff(const char *pfad);

BESCHREIBUNG

       swapon  weist  den  Auslagerungsbereich  für  Hauptspeicherbereiche  der  Datei  oder  dem
       blockorientierten Gerät zu, das in pfad angegeben wurde. swapoff beendet das Auslagern von
       Hauptspeicherbereichen in  der  Datei  oder  dem  blockorientierten  Gerät,  das  in  pfad
       angegeben wurde.

       Falls  der  Schalter  SWAP_FLAG_PREFER im swapon()-Argument swap_schalter angegeben wurde,
       hat der neue Auslagerungsbereich für Hauptspeicherbereiche eine höhere Priorität  als  der
       vorgegebene. Die Priorität ist in swap_schalter kodiert als:

           (prio << SWAP_FLAG_PRIO_SHIFT) & SWAP_FLAG_PRIO_MASK

       Falls  der  Schalter SWAP_FLAG_DISCARD im swapon()-Argument swap_schalter angegeben wurde,
       werden freigegebene Auslagerungsseiten  für  Hauptspeicherbereiche  verworfen,  bevor  sie
       erneut    benutzt    werden,   falls   das   Gerät   mit   dem   Auslagerungsbereich   für
       Hauptspeicherbereiche die Aktionen  zum  Verwerfen  oder  Kürzen  (»discard«  und  »trim«)
       unterstützt.  (Dies  könnte die Leistung auf einigen Festspeichergeräten (SSD) verbessern,
       was aber oft nicht der Fall ist.) Siehe auch die ANMERKUNGEN.

       Diese Funktionen können  nur  von  einem  privilegierten  Prozess  (einem,  der  über  die
       CAP_SYS_ADMIN-Capability verfügt) benutzt werden.

   Priorität
       Jeder  Auslagerungsbereich  für den Arbeitsspeicher hat eine Priorität, hoch oder niedrig.
       Die Standardpriorität  ist  niedrig.  Innerhalb  der  Auslagerungsbereiche  mit  niedriger
       Priorität werden neue Bereiche niedriger als bereits vorhandene Bereiche priorisiert.

       Alle mit _swap_schalter_ gesetzten Prioritäten sind hoch, höher als der Standardwert. Beim
       Aufruf kann die Priorität auf einen beliebigen nicht negativen Wert gesetzt werden. Höhere
       Werte bedeuten höhere Prioritäten.

       Auslagerungsbereiche  werden  gemäß  ihrer  Priorität  reserviert, solche mit der höchsten
       Priorität als erste. Ein höher priorisierter Bereich wird  zunächst  vollständig  genutzt,
       bevor  ein  Bereich  mit  niedrigerer  Priorität verwendet wird. Sind mehrere Bereiche mit
       derselben Priorität definiert  und  sind  alle  Bereiche  mit  höherer  Priorität  bereits
       vollständig  genutzt,  so  werden  neue  Speicherseiten  unter  den  gleich  priorisierten
       Bereichen reihum reserviert.

       Ab Linux 1.3.6 befolgt der Kernel diese Regeln gewöhnlich, aber es gibt auch Ausnahmen.

RÜCKGABEWERT

       Bei Erfolg wird Null zurückgegeben. Bei einem  Fehler  wird  -1  zurückgegeben  und  errno
       gesetzt, um den Fehler anzuzeigen.

FEHLER

       EBUSY  (Für  swapon())  Der  angegebene  pfad  wird  bereits  als  Auslagerungsbereich für
              Hauptspeicherbereiche benutzt.

       EINVAL Die Datei pfad existiert, bezieht sich aber weder auf eine normale Datei  noch  auf
              ein Blockgerät;

       EINVAL (swapon())  Der  angegebene  Pfad  enthält  keine gültige Auslagerungssignatur oder
              befindet sich in einem speicherinternen Dateisystem wie beispielsweise tmpfs(5).

       EINVAL (seit Linux 3.4)
              (swapon()) Ein unzulässiger Schalter wurde in swapflags angegeben.

       EINVAL (swapoff()) pfad ist derzeit kein Auslagerungsbereich.

       ENFILE Die systemweite Beschränkung für die Gesamtzahl offener Dateien wurde erreicht.

       ENOENT Die Datei pfad existiert nicht.

       ENOMEM Das System  verfügt  nicht  über  ausreichenden  Speicher,  um  das  Auslagern  von
              Hauptspeicherbereichen zu starten.

       EPERM  Der Aufrufende verfügt nicht über die Capability CAP_SYS_ADMIN. Alternativ wird die
              maximale Anzahl der Auslagerungsdateien für  Hauptspeicherbereiche  benutzt;  Lesen
              Sie die folgenden ANMERKUNGEN.

STANDARDS

       Linux.

GESCHICHTE

       Das Argument swapflags wurde in Linux 1.3.2 eingeführt.

ANMERKUNGEN

       Die Partition oder der Pfad müssen mit mkswap(8) vorbereitet werden.

       Es   gibt   eine  Obergrenze  für  die  Anzahl  der  benutzbaren  Auslagerungsdateien  von
       Hauptspeicherbereichen, die in der  Kernel-Konstante  MAX_SWAPFILES  definiert  wird.  Vor
       Linux  2.4.10  hatte MAX_SWAPFILES den Wert 8; seit Linux 2.4.10 hat sie den Wert 32. Seit
       Linux 2.6.18 ist die Grenze um zwei herabgesetzt (daher 30),  seit  Linux  5.19  wird  die
       Grenze  um  3  herabgesetzt  (daher: 29), falls der Kernel mit der Option CONFIG_MIGRATION
       erstellt wurde (die zwei Einträge in der  Auslagerungstabelle  von  Hauptspeicherbereichen
       für  die  Seiten-Migrationsfunktionen  von mbind(2) und migrate_pages(2) reserviert). Seit
       Linux 2.6.32 wird die Grenze ferner um eins herabgesetzt, falls der Kernel mit der  Option
       CONFIG_MEMORY_FAILURE  erstellt  wurde.  Seit Linux 5.14 ist die Beschränkung weiter auf 4
       reduziert, falls der Kernel mit der Option CONFIG_DEVICE_PRIVATE gebaut wurde. Seit  Linux
       5.19  ist  die  Grenze  weiter  um  1  herabgesetzt,  falls  der  Kernel  mit  der  Option
       CONFIG_PTE_MARKER erstellt wurde.

       Verwerfen  von  Auslagerungsseiten  von  Hauptspeicherbereichen  wurde  in  Linux   2.6.29
       eingeführt, dann wurde es in Linux 2.6.36 vom Schalter SWAP_FLAG_DISCARD abhängig gemacht,
       wodurch immer noch die  ganze  Auslagerung  von  Hauptspeicherbereichen  beim  Aufruf  von
       swapon() verworfen (»discard«) wird, sogar, wenn das Schalter-Bit nicht gesetzt ist.

SIEHE AUCH

       mkswap(8), swapoff(8), swapon(8)

ÜBERSETZUNG

       Die  deutsche Übersetzung dieser Handbuchseite wurde von Ralf Demmer <rdemmer@rdemmer.de>,
       Chris Leick <c.leick@vollbio.de>, Mario Blättermann <mario.blaettermann@gmail.com>,  Helge
       Kreutzmann   <debian@helgefjell.de>  und  Joachim  Schnitter  <joachim.schnitter@software-
       logistik.de> erstellt.

       Diese Übersetzung ist Freie Dokumentation;  lesen  Sie  die  GNU  General  Public  License
       Version  3 ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩ oder neuer bezüglich der Copyright-
       Bedingungen. Es wird KEINE HAFTUNG übernommen.

       Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-
       Mail an die Mailingliste der Übersetzer ⟨debian-l10n-german@lists.debian.org⟩.