Man page - pid_namespaces(7)
Packages contains this manual
- shm_overview(7)
- nss(5)
- proc_mtrr(5)
- intro(7)
- tcp(7)
- iso_8859-9(7)
- armscii-8(7)
- proc_kpagecount(5)
- initrd(4)
- mouse(4)
- proc_stat(5)
- x25(7)
- proc_interrupts(5)
- fifo(7)
- repertoiremap(5)
- icmp(7)
- futex(7)
- feature_test_macros(7)
- lp(4)
- bpf-helpers(7)
- epoll(7)
- proc_sys_dev(5)
- namespaces(7)
- proc_sysrq-trigger(5)
- proc_bus(5)
- cp1251(7)
- proc_pid_maps(5)
- proc_sys_vm(5)
- proc_pid_projid_map(5)
- st(4)
- proc_pid(5)
- issue(5)
- pid_namespaces(7)
- unicode(7)
- inode(7)
- hosts.equiv(5)
- iso-8859-13(7)
- proc_fb(5)
- proc_modules(5)
- proc_pid_autogroup(5)
- keyrings(7)
- sysvipc(7)
- proc_kmsg(5)
- cgroups(7)
- latin6(7)
- proc_pid_uid_map(5)
- unix(7)
- proc_pid_io(5)
- pts(4)
- packet(7)
- ld-linux.so(8)
- tzselect(8)
- iconv(1)
- proc_pid_syscall(5)
- proc_pid_net(5)
- proc_pid_pagemap(5)
- tty(4)
- proc_profile(5)
- standards(7)
- proc_pid_mounts(5)
- filesystems(5)
- iso-8859-15(7)
- locale(5)
- iso_8859_3(7)
- xattr(7)
- iso-8859-2(7)
- proc_uptime(5)
- persistent-keyring(7)
- credentials(7)
- proc_pid_timers(5)
- utmpx(5)
- vcsa(4)
- proc_pid_exe(5)
- proc_net(5)
- proc_timer_stats(5)
- ip(7)
- proc_pid_fd(5)
- ptmx(4)
- user_namespaces(7)
- resolv.conf(5)
- url(7)
- iso_8859_5(7)
- iso_8859-8(7)
- urn(7)
- process-keyring(7)
- proc_pid_auxv(5)
- proc_ksyms(5)
- proc_ide(5)
- veth(4)
- ldd(1)
- proc_swaps(5)
- landlock(7)
- proc_vmstat(5)
- system_data_types(7)
- cp1252(7)
- lirc(4)
- proc_kpageflags(5)
- random(7)
- precedence(7)
- cpuset(7)
- proc_pid_ns(5)
- acct(5)
- latin4(7)
- proc_pid_cgroup(5)
- proc_cpuinfo(5)
- iso_8859-2(7)
- proc_keys(5)
- charsets(7)
- pldd(1)
- proc_pid_stat(5)
- rtnetlink(7)
- netlink(7)
- ram(4)
- mem(4)
- iso-8859-6(7)
- proc_key-users(5)
- iso_8859_15(7)
- fanotify(7)
- proc_sys_net(5)
- sysfs(5)
- math_error(7)
- latin1(7)
- proc_pid_root(5)
- nptl(7)
- proc_cgroups(5)
- proc_iomem(5)
- proc_pid_statm(5)
- sem_overview(7)
- hier(7)
- full(4)
- proc_pid_status(5)
- proc_pid_cwd(5)
- proc_pid_cpuset(5)
- proc_scsi(5)
- uri(7)
- proc_diskstats(5)
- iso_8859_6(7)
- latin2(7)
- latin5(7)
- man-pages(7)
- ld.so(8)
- uts_namespaces(7)
- proc_pid_mountstats(5)
- intro(3)
- proc_pid_seccomp(5)
- proc_pid_wchan(5)
- attributes(7)
- symlink(7)
- mount_namespaces(7)
- charmap(5)
- tis-620(7)
- iso-8859-10(7)
- getent(1)
- proc_buddyinfo(5)
- ttytype(5)
- rtc(4)
- proc_malloc(5)
- suffixes(7)
- sln(8)
- signal(7)
- proc_sys_abi(5)
- signal-safety(7)
- time_namespaces(7)
- proc_pid_comm(5)
- raw(7)
- gai.conf(5)
- proc_crypto(5)
- locale(1)
- iso-8859-3(7)
- motd(5)
- proc_meminfo(5)
- iso-8859-8(7)
- protocols(5)
- proc_pid_map_files(5)
- pthreads(7)
- null(4)
- proc(5)
- zdump(8)
- socket(7)
- proc_sys_kernel(5)
- ddp(7)
- memusagestat(1)
- hd(4)
- iso-8859-14(7)
- shells(5)
- pipe(7)
- glob(7)
- proc_self(5)
- network_namespaces(7)
- utmp(5)
- proc_kcore(5)
- nsswitch.conf(5)
- sd(4)
- iso-8859-5(7)
- iso_8859_16(7)
- man(7)
- iso_8859-6(7)
- dir_colors(5)
- mq_overview(7)
- vsock(7)
- ascii(7)
- thread-keyring(7)
- fs(5)
- proc_pid_attr(5)
- proc_sys_debug(5)
- proc_sys(5)
- proc_pid_cmdline(5)
- pty(7)
- services(5)
- cgroup_namespaces(7)
- securetty(5)
- netdevice(7)
- iso_8859_13(7)
- host.conf(5)
- proc_pid_setgroups(5)
- proc_slabinfo(5)
- sock_diag(7)
- iso_8859-14(7)
- iso-8859-11(7)
- iso_8859_11(7)
- operator(7)
- regex(7)
- wavelan(4)
- proc_sys_fs(5)
- nologin(5)
- proc_pci(5)
- koi8-r(7)
- erofs(5)
- intro(2)
- utf8(7)
- proc_kallsyms(5)
- proc_sysvipc(5)
- queue(7)
- proc_sys_sunrpc(5)
- intro(5)
- latin8(7)
- mtrace(1)
- ipc_namespaces(7)
- dsp56k(4)
- iso_8859_4(7)
- proc_pid_smaps(5)
- proc_cmdline(5)
- rpc(5)
- proc_tty(5)
- proc_version(5)
- smartpqi(4)
- proc_pid_timerslack_ns(5)
- aio(7)
- session-keyring(7)
- resolver(5)
- slabinfo(5)
- wtmp(5)
- iso_8859_9(7)
- proc_locks(5)
- mailaddr(7)
- proc_pid_oom_score(5)
- kmem(4)
- iconvconfig(8)
- iso_8859-7(7)
- glibc(7)
- hostname(7)
- proc_thread-self(5)
- ipv6(7)
- iso_8859_7(7)
- proc_kpagecgroup(5)
- core(5)
- time(7)
- units(7)
- proc_dma(5)
- loop(4)
- address_families(7)
- zero(4)
- intro(4)
- procfs(5)
- iso_8859-4(7)
- vdso(7)
- tmpfs(5)
- iso-8859-16(7)
- iso_8859_10(7)
- user-session-keyring(7)
- libc(7)
- proc_fs(5)
- koi8-u(7)
- latin3(7)
- proc_tid_children(5)
- proc_pid_limits(5)
- proc_pid_coredump_filter(5)
- iso_8859-15(7)
- arp(7)
- urandom(4)
- iso_8859-10(7)
- hpsa(4)
- proc_pid_environ(5)
- boot(7)
- ftm(7)
- ld-linux(8)
- proc_driver(5)
- loop-control(4)
- iso_8859-16(7)
- proc_filesystems(5)
- tzfile(5)
- sprof(1)
- proc_pid_task(5)
- proc_pid_oom_score_adj(5)
- proc_mounts(5)
- iso-8859-4(7)
- iso_8859-1(7)
- utf-8(7)
- iso_8859-13(7)
- intro(6)
- proc_timer_list(5)
- rtld-audit(7)
- iso_8859-3(7)
- group(5)
- sched(7)
- proc_pid_clear_refs(5)
- hosts(5)
- iso_8859-11(7)
- numa(7)
- iso_8859_2(7)
- locale(7)
- iso-8859-1(7)
- fuse(4)
- proc_tid(5)
- proc_execdomains(5)
- proc_pid_mountinfo(5)
- intro(8)
- iso_8859_8(7)
- proc_loadavg(5)
- proc_pid_oom_adj(5)
- re_format(7)
- iso_8859_14(7)
- zic(8)
- bootparam(7)
- inotify(7)
- posixoptions(7)
- proc_partitions(5)
- iso-8859-9(7)
- proc_pid_mem(5)
- networks(5)
- proc_sys_user(5)
- udp(7)
- proc_zoneinfo(5)
- latin10(7)
- proc_pid_fdinfo(5)
- proc_pid_stack(5)
- memusage(1)
- spufs(7)
- pkeys(7)
- path_resolution(7)
- proc_ioports(5)
- intro(1)
- ldconfig(8)
- msr(4)
- svipc(7)
- port(4)
- proc_pid_personality(5)
- cciss(4)
- latin9(7)
- capabilities(7)
- localedef(1)
- vcs(4)
- iso_8859-5(7)
- elf(5)
- proc_sys_proc(5)
- console_codes(4)
- random(4)
- iso-8859-7(7)
- termcap(5)
- cpuid(4)
- environ(7)
- string_copying(7)
- proc_pid_gid_map(5)
- queue(3)
- termio(7)
- user-keyring(7)
- complex(7)
- latin7(7)
- proc_config.gz(5)
- udplite(7)
- kernel_lockdown(7)
- proc_devices(5)
- proc_apm(5)
- iso_8859_1(7)
- proc_pid_numa_maps(5)
apt-get install manpages
Available languages:
en fr sv ja ru ro deManual
PID_NAMESPACES
å åčĒŦ æ
å å įŠē é ㎠init ã ã ãģ ãš
ã ãš ã ã ã ã PID å å įŠē é
setns(2) 㨠unshare(2) ㎠å äŊ
CLONE_NEWPID ㎠äģ ㎠CLONE_* ã ㊠㰠㨠㎠äē æ æ§
/proc 㨠PID å å įŠē é
ã ㎠äģ
æē æ
äž
éĸ éŖ é įŽ
ã ãŽ æ æ¸ ãĢ ã¤ ã ãĻ
å å
pid_namespaces - Linux PID å å įŠē é ㎠æĻ čĻ
čĒŦ æ
å å įŠē é ㎠æĻ čĻ ãĢ ã¤ ã ãĻ ã¯ namespaces (7) ã å į § ã
PID å å įŠē é 㯠ã ã ãģ ãš ID įĒ åˇ įŠē é ã å éĸ ã ã ã ã ã 㯠ã į° ãĒ ã PID å å įŠē é ㎠ã ã ãģ 㚠㯠å ã PID ã æ 㤠ã 㨠ã ã§ ã ã ã ã¨ ã æ åŗ ã ã ã PID å å įŠē é ã äŊŋ ã ã 㨠㧠ã ãŗ ãŗ ã ã ãŧ å ㎠ã ã ãģ ãš įž¤ ã ä¸ æ ã å é ã ã ã ã ãŗ ãŗ ã ã ãŧ å ㎠ã ã ãģ 㚠㎠PID ã äŋ æ ã ã ãž ãž ãŗ ãŗ ã ã ãŧ ã æ° ã ã ã ãš ã ãĢ į§ģ čĄ ã ã ã ã ã 㨠ã ãŖ ã æŠ čŊ ã ãŗ ãŗ ã ã ãŧ ã æ äž ã ã ã 㨠ã å¯ čŊ ãĢ ãĒ ã ã
æ° ã ã PID å å įŠē é ㎠PID 㯠ã įŦ įĢ ã ã ãˇ ãš ã ã ã§ ã ã ã ㎠ã ã ãĢ ã 1 ã ã å§ ãž ã ã fork (2), vfork (2), clone (2) ã åŧ ãŗ åē ã 㨠ã ã ㎠å å įŠē é å ã§ ä¸ æ ãĒ PID ã§ ã ã ãģ ãš ã į æ ã ã ã ã
PID å å įŠē é ã äŊŋ ፠ã ã ãĢ ã¯ ã č¨ åŽ CONFIG_PID_NS ã æ åš ãĢ ãĒ ãŖ ã ãĢ ãŧ ã ãĢ ã åŋ čĻ ã§ ã ã ã
å å įŠē é ㎠init ã ã ãģ ãš
æ° ã ã å å įŠē é ã§ äŊ æ ã ã ã æ å ㎠ã ã ãģ ãš (ã ãĒ ã ãĄ ã CLONE_NEWPID ã ㊠㰠㧠clone (2) ã äŊŋ ãŖ ãĻ äŊ æ ã ã ã ã ã ãģ ãš ã ã CLONE_NEWPID ã ㊠㰠㧠unshare (2) ã åŧ ãŗ åē ã ã åž ãŽ ã ã ãģ ãš ãĢ ã ãŖ ãĻ äŊ æ ã ã ã æ å ㎠ã ã ãģ ãš ) 㯠PID 1 ã æ ãĄ ã ã ㎠ã ã ãģ 㚠㯠ã ㎠å å įŠē é ㎠"init" ã ã ãģ 㚠㨠ãĒ ã ( init (1) å į § )ã å å įŠē é å ã§ ãŋ ãĒ ã ã ãĢ ãĒ ãŖ ã (čĻĒ ã ã ãģ ãš ã ã ãĒ ã ãĒ ãŖ ã ) å ã ã ãģ 㚠㯠ã init (1) 㧠㯠ãĒ ã ã ㎠ã ã ãģ ãš ã čĻĒ ã ã ãģ ãš ãĢ ãĒ ã (ã ã ã ã å ã PID å å įŠē é å ㎠ã ㎠å ã ã ãģ 㚠㎠å įĨ ã ã prctl (2) ㎠PR_SET_CHILD_SUBREAPER ãŗ ã ãŗ ã ã äŊŋ ãŖ ãĻ ã čĒ å čĒ čēĢ ã ãŋ ãĒ ã ã 㨠ãĒ ãŖ ã å åĢ ãŽ ã ã ãģ 㚠㎠åŧ ã å ã æ ãĢ ãĒ ãŖ ãĻ ã ã å ´ å 㯠ã ㎠é ã 㧠㯠ãĒ ã )ã
PID å å įŠē é ㎠"init" ã ã ãģ ãš ã įĩ äē ã ã 㨠ã ãĢ ãŧ ã ãĢ ã¯ ã ㎠å å įŠē é ãŽ å ¨ ã ã ãģ ãš ã SIGKILL ãˇ ã° ã ãĢ ã§ įĩ äē ã ã ã ã ㎠å äŊ 㯠ã PID å å įŠē é ãŽ æŖ ã ã æ äŊ ㎠ã ã ãĢ ã¯ "init" ã ã ãģ ãš ã¯ ä¸ å¯ æŦ ã§ ã ã 㨠ã ã äē åŽ ã å æ ã ã ã ㎠㧠ã ã ã ã ãŽ å ´ å ã ã ㎠PID å å įŠē é 㸠㎠ã ã äģĨ é ㎠fork (2) 㯠㨠㊠ãŧ ENOMEM ã§ å¤ą æ ã ã ã "init" ã ã ãģ ãš ã įĩ äē ã ãĻ ã ã PID å å įŠē é ãĢ æ° ã ã ã ã ãģ ãš ã äŊ æ ã ã ã 㨠㯠㧠ã ãĒ ã ã ã ㎠ã ã ãĒ įļ æŗ 㯠ã äž ã ã° ã å å įŠē é ãĢ ã ã ã ã ãģ ãš ãĢ å¯ž åŋ ã ã /proc/[pid]/ns/pid ã ãĄ ã¤ ãĢ ãĢ å¯ž ã ãĻ ãĒ ãŧ ã ãŗ ã ã ã ãĄ ã¤ ãĢ ã ãŖ ãš ã¯ ãĒ ã ãŋ ãŧ ã äŊŋ ãŖ ãĻ ã "init" ã ã ãģ ãš ã įĩ äē ã ã åž ãĢ ã ㎠å å įŠē é ãĢ setns (2) ã čĄ ãŖ ã å ´ å ãĢ čĩˇ ã ã åž ã ã unshare (2) ã åŧ ãŗ åē ã ã åž ãĢ ã ã ã ㎠įļ æŗ 㯠čĩˇ ã ã åž ã ã ã ã äģĨ é ãĢ fork (2) ã§ äŊ æ ã ã ã æ å ㎠å ã ã ãģ ãš ã įĩ äē ã ã 㨠ã ã ã äģĨ é ㎠fork (2) ㎠åŧ ãŗ åē ã 㯠NOMEM ã§ å¤ą æ ã ã ã
PID å å įŠē é ㎠äģ ãŽ ãĄ ãŗ ã ãŧ 㯠ã "init" ã ã ãģ ãš ã ãˇ ã° ã ãĢ ã ãŗ ã ㊠ãŧ ã č¨ åŽ ã ã ãˇ ã° ã ãĢ ã ã ã ã "init" ã ã ãģ ãš ãĢ é äŋĄ ã ã ã 㨠ã ã§ ã ã ã ã ㎠åļ é ã¯ įš æ¨Š ã ã ãģ ãš ãĢ å¯ž ã ãĻ ã éŠ į¨ ã ã ã ã ã ㎠åļ é ãĢ ã ã ã PID å å įŠē é ㎠äģ ãŽ ãĄ ãŗ ã ãŧ ã ã ãŖ ã ã "init" ã ã ãģ ãš ã æŽē ã ãĻ ã ãž ã ㎠ã é˛ ã ã 㨠ã ã§ ã ã ã
å æ§ ãĢ ã å įĨ ㎠å å įŠē é ㎠ã ã ãģ 㚠㯠ã "init" ã ã ãģ ãš ã ã ãŽ ãˇ ã° ã ãĢ ãĢ å¯ž ã ã ã ãŗ ã ㊠ãŧ ã č¨ åŽ ã ãĻ ã ã å ´ å ãĢ ãŽ ãŋ ã kill (2) ã§ čĒŦ æ ã ã ãĻ ã ã é 常 ㎠ãĸ 㯠ãģ ãš č¨ą å¯ ãŽ ã ã§ ã 㯠ã įĩ ã ä¸ ã§ ã å äž ãŽ PID å å įŠē é ㎠"init" ã ã ãģ ãš ãĢ ãˇ ã° ã ãĢ ã é äŋĄ ã§ ã ã ã (ã ãŗ ã ㊠ãŧ å 㧠㯠ã sigaction (2) ãĢ čĒŦ æ ã ã ã siginfo_t ㎠si_pid ã ãŖ ãŧ ãĢ ã 㯠0 ãĢ ãĒ ã ã ) SIGKILL 㨠SIGSTOP ã¯ äž å¤ ã¨ ã ãĻ æą ã ã ã ã ã ã ãŽ ãˇ ã° ã ãĢ ã å įĨ ㎠PID å å įŠē é ã ã é äŋĄ ã ã ã å ´ å ãĢ ã¯ åŧˇ åļ į ãĢ é é ã ã ã ã ã ã ã ãŽ ãˇ ã° ã ãĢ ã¯ ãŠ ãĄ ã ã "init" ã ã ãģ ãĢ ã æ æ ã ã ã 㨠㯠㧠ã ãĒ ã ã ã ㎠ã ã ã ã ã ã ãŽ ãˇ ã° ã ãĢ ãĢ éĸ éŖ äģ ã ã ã ã é 常 ㎠ãĸ ã¯ ãˇ ã§ ãŗ (ã ã ã ã ã ã ã ãģ 㚠㎠įĩ äē 㨠ã ã ãģ 㚠㎠åŧˇ åļ å æĸ ) ã åŽ čĄ ã ã ã ã
Linux 3.4 äģĨ é 㧠㯠ã reboot (2) ãˇ ãš ã ã ãŗ ãŧ ãĢ ã åŧ ãŗ åē ã 㨠ã ãˇ ã° ã ãĢ ã ã ㎠å å įŠē é ㎠"init" ã ã ãģ ãš ãĢ é äŋĄ ã ã ã ã čŠŗ į´° 㯠reboot (2) ã å į § ã
ã ãš ã ã ã ã PID å å įŠē é
PID å å įŠē é 㯠å Ĩ ã å ãĢ ã ã ã 㨠ã ã§ ã ã ã æ å ㎠("root") PID å å įŠē é äģĨ å¤ ãŽ å PID å å įŠē é 㯠čĻĒ ã æ 㤠ã PID å å įŠē é ㎠čĻĒ ã¯ clone (2) ã unshare (2) ã äŊŋ ãŖ ãĻ ã ㎠å å įŠē é ã äŊ æ ã ã ã ã ãģ 㚠㎠PID å å įŠē é ã§ ã ã ã ã ã ã ãŖ ãĻ ã PID å å įŠē é ã¯ æ¨ æ§ é ã æ§ æ ã ã ã ãš ãĻ ãŽ å å įŠē é 㯠čĻĒ ã čžŋ ãŖ ãĻ čĄ ã ã¨ ã æ įĩ į ãĢ ã¯ root å å įŠē é ãĢ čžŋ ã į ã ã
ã ã ãģ ãš ã¯ ã æ åą ã ã PID å å įŠē é ㎠äģ ㎠ã ã ãģ ãš ã ã čĻ ã ã ã ãž ã ã root PID å å įŠē é ãĢ å ã ã į´ åž ãŽ å įĨ ㎠å PID å å įŠē é ㎠ã ã ãģ ãš ã ã ã čĻ ã ã ã ã ãŽ å ´ å ã ã čĻ ã ã ã 㨠㯠ã ã ã ã ã ãģ ãš ã ã äģ ㎠ã ã ãģ ãš ã ã ã ãģ ãš ID ã æ åŽ ã ã ãˇ ãš ã ã ãŗ ãŧ ãĢ ã äŊŋ ã é ãĢ æ äŊ ㎠寞 蹥 ãĢ ã§ ã ã ã ã¨ ã æ åŗ ã ã ã é ãĢ ã å äž PID å å įŠē é ㎠ã ã ãģ ãš ã ã čĻĒ ã å įĨ ㎠å å įŠē é ㎠ã ã ãģ 㚠㯠čĻ ã ãĒ ã ã ã ã ã ã ãģ 㚠㯠čĒ å čĒ čēĢ ãŽ PID å å įŠē é 㨠ã ㎠å åĢ ãŽ å å įŠē é ㎠ã ã ãģ ãš ã ã ã čĻ ã ã (äž ã ã° ã kill (2) ã§ ãˇ ã° ã ãĢ ã é äŋĄ ã ã ã ã setpriority (2) ã§ nice å¤ ã č¨ åŽ ã ã ã ã ãĒ ãŠ )ã
ã ã ãģ 㚠㯠ã ã ㎠ã ã ãģ ãš ã čĻ ã ã PID å å įŠē é ㎠é åą¤ ㎠å åą¤ ãĢ ã ã ãĻ ã ã ãģ ãš ID ã ä¸ ã¤ æ ãĄ ã į´ æĨ ㎠å įĨ ㎠å å įŠē é ã čžŋ ã ã 㨠㧠é ãŖ ãĻ root PID å å įŠē é ãĢ čŗ ã ã 㨠ã ã§ ã ã ã ã ã ãģ ãš ID ãĢ å¯ž ã ãĻ æ äŊ ã čĄ ã ãˇ ãš ã ã ãŗ ãŧ ãĢ ã¯ ã 常 ãĢ ã åŧ ãŗ åē ã å ã ã ãģ 㚠㎠PID å å įŠē é ã§ čĻ ã ã ã ã ãģ ãš ID ã äŊŋ ãŖ ãĻ æ äŊ ã čĄ ã ã getpid (2) ㎠åŧ ãŗ åē ã 㧠㯠ã 常 ãĢ ã ã ã ãģ ãš ã äŊ æ ã ã ã å å įŠē é ãĢ éĸ éŖ äģ ã ã ã ã PID ã čŋ ã ã
PID å å įŠē é å ㎠ã ã ãģ 㚠㯠å å įŠē é ãŽ å¤ é¨ ãĢ čĻĒ ã ã ãģ ãš ã æ 㤠ã 㨠ã ã§ ã ã ã äž ã ã° ã ã ㎠å å įŠē é ãŽ å æ ã ã ãģ ãš (ã ãĒ ã ãĄ PID 1 ã æ 㤠init (1) ã ã ãģ ãš ) ㎠čĻĒ ã ã ãģ 㚠㯠åŋ įļ į ãĢ åĨ ㎠å å įŠē é ãĢ åą ã ã 㨠ãĢ ãĒ ã ã å æ§ ãĢ ã ã ã ã ã ãģ ãš ã setns (2) ã äŊŋ ãŖ ãĻ å ã ã ãģ ãš ã PID å å įŠē é ãĢ å å ã ã ã å ´ å ã å ã ã ãģ 㚠㯠setns (2) ㎠åŧ ãŗ åē ã å ã¨ ã¯ į° ãĒ ã PID å å įŠē é ãĢ åą ã ã å ã ã ãģ ãš ã§ getppid (2) ã åŧ ãŗ åē ã 㨠0 ã čŋ ã ã ã ã
ã ã ãģ 㚠㯠( setns (2) ã CLONE_NEWPID ã§ äŊŋ ã ãĒ ãŠ ã§ ) å äž ãŽ PID å å įŠē é ãĢ čĒ įą ãĢ å Ĩ ã ã 㨠ã ã§ ã ã ã ã é ãŽ æš å ãĢ ã¯ į§ģ å ã§ ã ãĒ ã ã 㤠㞠ã ã ã ã ãģ 㚠㯠å įĨ ㎠å å įŠē é (čĻĒ ã čĻĒ ãŽ čĻĒ ãĒ ãŠ ) ãĢ å Ĩ ã ã 㨠㯠㧠ã ãĒ ã ã PID å å įŠē é ãŽ å¤ æ´ ã¯ ä¸ æš å ㎠æ äŊ ã§ ã ã ã
setns(2) 㨠unshare(2) ㎠å äŊ
PID å å įŠē é ㎠ã ãĄ ã¤ ãĢ ã ãŖ ãš ã¯ ãĒ ã ãŋ ãŧ ã æ åŽ ã ãĻ setns (2) ã åŧ ãŗ åē ã ã ã ã CLONE_NEWPID ã ㊠㰠äģ ã ã§ unshare (2) ã åŧ ãŗ åē ã ã ã ã ã 㨠ã ã ㎠įĩ æ äŊ æ ã ã ã å ã ã ãģ 㚠㯠åŧ ãŗ åē ã å ã¨ ã¯ į° ãĒ ã PID å å įŠē é ãĢ įŊŽ ã ã ã ã ã ã ã ã ã ã ã ㎠åŧ ãŗ åē ã 㧠㯠åŧ ãŗ åē ã å ã ã ãģ 㚠㎠PID å å įŠē é ã¯ å¤ æ´ ã ã ãĒ ã ã ãĒ ã ãĒ ã ã PID å å įŠē é ã å¤ æ´ ã ãĻ ã ãž ã 㨠ã åŧ ãŗ åē ã å ã čĒ č ã ã ( getpid () ã čŋ ã ) čĒ å ㎠PID ã å¤ ã ãŖ ãĻ ã ãž ã ã å¤ ã ㎠ãĸ ã ãĒ ãą ãŧ ãˇ ã§ ãŗ ã ㊠㤠ã ㊠ãĒ ã æŖ ã ã å äŊ ã ãĒ ã ãĒ ã ã ã ã§ ã ã ã
åĨ ãŽ č¨ ã æš ã ã ã 㨠ã ã ã ã ã ãģ ãš ã ㊠㎠PID å å įŠē é ãĢ æ åą ã ã ã 㯠ã ã ㎠ã ã ãģ ãš ã äŊ æ ã ã ã 㨠ã ãĢ æąē åŽ ã ã ã ã ã äģĨ é ã¯ å¤ æ´ ã ã ã ã 㨠㯠ãĒ ã ã ã ã ã ã ã ã ã ã ã ã ãģ ãš é ㎠čĻĒ å éĸ äŋ ãĢ ã¯ ã PID å å įŠē é ㎠čĻĒ å éĸ äŋ ã ã ãŽ ãž ãž å æ ã ã ã 㨠ã ã ã 㨠ã ã ã ã ãģ 㚠㎠čĻĒ ã ã ãģ 㚠㯠ã å ã å å įŠē é ãĢ ã ã ã ã ã ã ã ã¯ į´ æĨ ㎠čĻĒ PID å å įŠē é ãĢ ã ã ã ㎠ã ã ã ã ã§ ã ã ã
CLONE_NEWPID ㎠äģ ㎠CLONE_* ã ㊠㰠㨠㎠äē æ æ§
CLONE_NEWPID 㯠ã ã 㤠ã ㎠äģ ㎠CLONE_* ã ㊠㰠㨠įĩ ãŋ å ã ã ã ã 㨠ã ã§ ã ãĒ ã ã
|
* |
CLONE_THREAD 㯠ã ã ã ãģ ãš å ㎠㚠ãŦ ã ã é ã§ äē ã ãĢ ãˇ ã° ã ãĢ ã é äŋĄ ã§ ã ã ã ã ãĢ ã ã ã ã ã å ã PID å å įŠē é ãĢ åą ã ãĻ ã ã åŋ čĻ ã ã ã ã å æ§ ãĢ ã ã ã ãģ ãš å ãŽ å ¨ ãš ãŦ ã ã ã proc (5) ã ãĄ ã¤ ãĢ ãˇ ãš ã ã ã§ čĻ ã ã åŋ čĻ ã ã ã ã |
||
|
* |
CLONE_SIGHAND 㯠ã å ã PID å å įŠē é ã§ ã ã åŋ čĻ ã ã ã ã ã ã ãĒ ã ã ã° ã ãˇ ã° ã ãĢ ã é äŋĄ ã ã ã é ãĢ ã ãˇ ã° ã ãĢ ã é äŋĄ ã ã ã ã ãģ 㚠㎠ã ã ãģ ãš ID ã æ åŗ ãŽ ã ã åŊĸ ã§ ã¨ ãŗ ãŗ ãŧ ã ã ã ã 㨠ã ã§ ã ãĒ ã ( sigaction (2) ㎠siginfo_t å ㎠čĒŦ æ ã å į § )ã č¤ æ° ãŽ PID å å įŠē é ãĢ åą ã ã ã ã ãģ ãš é ã§ ä¸ ã¤ ãŽ ãˇ ã° ã ãĢ ã ãĨ ãŧ ã å ą æ ã ã 㨠ã ã ãž ã å ã ãĒ ã ãĒ ã ã |
||
|
* |
CLONE_VM 㯠ã å ¨ ãš ãŦ ã ã ã å ã PID å å įŠē é ãĢ åą ã ãĻ ã ã åŋ čĻ ã ã ã ã ãĒ ã ãĒ ã ã ãŗ ãĸ ã ãŗ ã ㎠čĻŗ įš ã ã čĻ ã 㨠ã 2 㤠㎠ã ã ãģ ãš ã å ã ãĸ ã ãŦ ãš įŠē é ã å ą æ ã ãĻ ã ã ã° ã ã ã ã 㯠㚠ãŦ ã ã ã§ ã ã ã ãŗ ãĸ ã ãŗ ã ã ä¸ įˇ ãĢ čĄ ã ã ã ã ã ã§ ã ã ã ãŗ ãĸ ã ãŗ ã ã æ¸ ã čžŧ ãž ã ã é ãĢ ã å ãš ãŦ ã ã ㎠PID ã ãŗ ãĸ ã ãŗ ã ãĢ æ¸ ã čžŧ ãž ã ã ã ã ã ã ã ãģ ãš ID ㎠ã ã 㤠ã ã čĻĒ PID å å įŠē é ãĢ åą ã ãĻ ã ã 㨠ã ã 㨠ã ã ã ãģ ãš ID ãŽ æ¸ ã čžŧ ãŋ 㯠æ åŗ ã æ ã ãĒ ã ãĒ ãŖ ãĻ ã ãž ã ã |
㞠㨠ã ã 㨠ã CLONE_THREAD , CLONE_SIGHAND , CLONE_VM 㧠㯠æ čĄ į ãĒ čĻ äģļ 㨠ã ãĻ PID å å įŠē é ã å ą æ ã ã ãĻ ã ã įš ã ã ã ã (ã ã ãĢ clone (2) 㧠㯠CLONE_THREAD ã CLONE_SIGHAND ã æ åŽ ã ã ã é ãĢ ã¯ CLONE_VM ã æ åŽ ã ã ãĻ ã ã åŋ čĻ ã ã ã įš ãĢ ã æŗ¨ æ ã ) ã ã ã ãŖ ãĻ ã äģĨ ä¸ ãŽ ã ã ãĒ é åē ã§ åŧ ãŗ åē ã ã čĄ ã 㨠(㨠㊠ãŧ EINVAL ã§ ) å¤ą æ ã ã ã
unshare(CLONE_NEWPID);
clone(..., CLONE_VM, ...); /* Fails */
setns(fd,
CLONE_NEWPID);
clone(..., CLONE_VM, ...); /* Fails */
clone(...,
CLONE_VM, ...);
setns(fd, CLONE_NEWPID); /* Fails */
clone(...,
CLONE_VM, ...);
unshare(CLONE_NEWPID); /* Fails */
/proc 㨠PID å å įŠē é
/proc ã ãĄ ã¤ ãĢ ãˇ ãš ã ã 㯠ã /proc ㎠ã ãĻ ãŗ ã ã čĄ ãŖ ã ã ã ãģ 㚠㎠PID å å įŠē é ã§ čĻ ã ã ã ã ãģ ãš ã ã ã 襨 į¤ē ã ã ã ã 㨠ã ã ã ㎠/proc ã ãĄ ã¤ ãĢ ãˇ ãš ã ã ã äģ ㎠å å įŠē é ㎠ã ã ãģ ãš ã ã å į § ã ã ã 㨠ã ãĻ ã ã ã ã ã§ ã ã ã
æ° ã ã PID å å įŠē é ã äŊ æ ã ã åž ã å ã ã ãģ ãš ã ã čĒ čēĢ ãŽ root ã ãŖ ãŦ 㯠ã ãĒ ã å¤ æ´ ã ã æ° ã ã procfs ã¤ ãŗ ãš ãŋ ãŗ ãš ã /proc ãĢ ã ãĻ ãŗ ã ã ã ㎠㯠ps (1) ãĒ ãŠ ãŽ ã ãŧ ãĢ ã æŖ ã ã å äŊ ã ã ã ã ãĢ ã æ į¨ ã§ ã ã ã clone (2) ㎠flags åŧ ã æ° ãĢ CLONE_NEWNS ã æ åŽ ã ã ãĻ æ° ã ã ã ãĻ ãŗ ã å å įŠē é ã å æ ãĢ äŊ æ ã ã ã å ´ å 㯠ã root ã ãŖ ãŦ 㯠ã ãĒ ã å¤ æ´ ã ã åŋ čĻ ã¯ ãĒ ã ã æ° ã ã procfs ã¤ ãŗ ãš ãŋ ãŗ ãš ã /proc ãĢ ã ㎠㞠㞠ã ãĻ ãŗ ã ã ã ã 㨠ã ã§ ã ã ã
ãˇ ã§ ãĢ ã ã ã ãŗ ã ãŗ ã ã§ /proc ㎠ã ãĻ ãŗ ã ã čĄ ã ãĢ ã¯ æŦĄ ㎠ã ã ãĢ ã ã ã
$ mount -t proc proc /proc
ã ãš /proc/self ãĢ å¯ž ã ãĻ readlink (2) ã åŧ ãŗ åē ã 㨠ã procfs ㎠ã ãĻ ãŗ ã ã čĄ ãŖ ã ã ã ãģ 㚠㎠PID å å įŠē é ãĢ ã ã ã ã ã ãģ ãš ID ã åž ã ã ã ã ã ã 㯠čĒŋ æģ įŽ į ã§ ã ã ãģ ãš ã äģ ㎠å å įŠē é ã§ čĒ čēĢ ãŽ PID ã įĨ ã ã ã å ´ å ãĒ ãŠ ãĢ åŊš įĢ ã¤ ã
ã ㎠äģ
ã ã ãģ ãš ID ã UNIX ã ãĄ ã¤ ãŗ ãŊ ãą ã ã įĩ įą ã§ åĨ ㎠PID å å įŠē é ㎠ã ã ãģ ãš ãĢ æ¸Ą ã ã ã å ´ å ( unix (7) ㎠SCM_CREDENTIALS ㎠čĒŦ æ ã å į § )ã ã ã ãģ ãš ID 㯠å äŋĄ ã ã ãģ 㚠㎠PID å å įŠē é 㧠㎠寞 åŋ ã ã PID å¤ ãĢ įŋģ 荺 ã ã ã ã
æē æ
å å įŠē é 㯠Linux įŦ čĒ ãŽ æŠ čŊ ã§ ã ã ã
äž
user_namespaces (7) å į § ã
éĸ éŖ é įŽ
clone (2), setns (2), unshare (2), proc (5), credentials (7), capabilities (7), user_namespaces (7), switch_root (8)
ã ãŽ æ æ¸ ãĢ ã¤ ã ãĻ
ã ㎠man ã ãŧ 㸠㯠Linux man-pages ã ã 㸠㧠㯠ã ㎠ãĒ ãĒ ãŧ ãš 3.79 ãŽ ä¸ é¨ ã§ ã ã ã ã ã 㸠㧠㯠ã ㎠čĒŦ æ 㨠ã ã° å ą å ãĢ éĸ ã ã æ å ą 㯠http://www.kernel.org/doc/man-pages/ ãĢ æ¸ ã ã ãĻ ã ã ã