pid namespaces(7)
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 även
- clone(2)
- reboot(2)
- setns(2)
- unshare(2)
- proc(5)
- capabilities(7)
- credentials(7)
- namespaces(7)
- user_namespaces(7)
- switch_root(8)
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.