Foundationপ্রথম নীতি থেকে
LEVEL 12 · Virtualization, Containers & Cloud

PID Namespace

পিআইডি নেমস্পেস

CLONE_NEWPID দিয়ে তৈরি namespace — ভেতরের process নিজেকে PID ১ ভাবে, বাইরের host process দেখতেই পায় না।

also: clone-newpid

clone(CLONE_NEWPID | ...)  →  child নতুন PID namespace-এ জন্ম নেয়, সেখানে PID = 1
                               host থেকে দেখলে সেই process-এরই একটা ভিন্ন (বড়) PID আছে
  • Namespace-এর ভেতরের PID 1-এর kernel-স্তরে বিশেষ আচরণ আছে — default signal disposition পায় না, orphan child reap করার দায়িত্ব তারই — তাই container-এ সরাসরি app না চালিয়ে tini/dumb-init-জাতীয় real init দরকার
  • নেস্টেড namespace সম্ভব — একটা process একই সাথে একাধিক namespace-এ ভিন্ন ভিন্ন PID-এ “থাকে” (host PID, namespace PID আলাদা)
  • Namespace-এর সব process মরে গেলে (এবং PID 1 মরলে) পুরো namespace-ই ধ্বংস হয়ে যায় — এটাই container “exit” হওয়ার আসল প্রক্রিয়া