pid namespaces(7)

Från Wiki.linux.se
Hoppa till navigering Hoppa till sök

pid_namespaces(7)

Översikt

pid_namespaces - En översikt över Linux PID-namnutrymmen.

Beskrivning

För en översikt av namnutrymmen, se namespaces(7).

PID-namnutrymmen isolerar process-ID-nummerutrymmet, vilket innebär att processer i olika PID-namnutrymmen kan ha samma PID. PID-namnutrymmen möjliggör funktioner som att pausa/återuppta alla processer i en container samt migrera containern till en ny värd samtidigt som processerna behåller samma PIDs.

PIDs i ett nytt PID-namnutrymme börjar på 1, liknande ett fristående system. Anrop till fork(2), vfork(2) eller clone(2) skapar processer med unika PIDs inom namnutrymmet.

Användning av PID-namnutrymmen kräver en kärna som är konfigurerad med alternativet CONFIG_PID_NS.

Init-processen i ett namnutrymme

Den första processen som skapas i ett nytt namnutrymme (med clone(2) och flaggan CLONE_NEWPID eller med unshare(2) med samma flagga) får PID 1 och fungerar som "init"-process för namnutrymmet. Denna process blir förälder till eventuella föräldralösa barnprocesser som uppstår när en process i detta PID-namnutrymme avslutas.

Om "init"-processen i ett PID-namnutrymme avslutas, terminerar kärnan alla processer i detta namnutrymme genom en SIGKILL-signal. Detta förhindrar att nya processer skapas i ett namnutrymme där "init"-processen har avslutats.

Nestade PID-namnutrymmen

PID-namnutrymmen kan nästas: varje PID-namnutrymme (förutom det initiala) har en förälder. Förälder till ett PID-namnutrymme är det namnutrymme där processen som skapade det med clone(2) eller unshare(2) befann sig.

Processer i ett PID-namnutrymme är synliga för processer i samma namnutrymme och i alla överordnade namnutrymmen upp till det initiala namnutrymmet. Däremot är processer i barnnamnutrymmen osynliga för processer i förälder- och förfadernivåerna.

Hantering av föräldralösa processer

Om en process blir föräldralös, omplaceras den som barn till "init"-processen i förälderns PID-namnutrymme (eller en närmare förfader om en sådan är markerad med prctl(2)).

Användning av /proc med PID-namnutrymmen

Ett monterat /proc-filsystem visar endast processer som är synliga i PID-namnutrymmet för den process som utförde monteringen.

För att verktyg som ps(1) ska fungera korrekt i ett nytt PID-namnutrymme bör barnet montera ett nytt procfs vid /proc.

Exempel:

$ mount -t proc proc /proc

Filer i /proc

  • /proc/sys/kernel/ns_last_pid (sedan Linux 3.3) - Denna fil visar det senaste PID som tilldelades i detta PID-namnutrymme. Den är skrivbar av processer med CAP_SYS_ADMIN eller (sedan Linux 5.9) CAP_CHECKPOINT_RESTORE inom det användarnamnutrymme som äger PID-namnutrymmet.

Standarder

Linux-specifik.

Exempel

Se user_namespaces(7).

Se även

Colophon

Den här sidan är en del av projektet för Linux manual-sidor. Mer information finns på kernel.org. Buggrapporter skickas till man-pages@man7.org.

Sidslut

Orginalhemsidan på Engelska :https://man7.org/linux/man-pages/man7/pid_namespaces.7.html


Det här är en maskinöversättning av Linux man sidor till svenska. Om du hittar fel är vi tacksamma om du rapporterar dem via formuläret som finns på https://www.linux.se/kontaka-linux-se/

Tack till Datorhjälp som har sponsrat Linux.se med webbhotell.