61 lines
1.1 KiB
Markdown
61 lines
1.1 KiB
Markdown
|
\newpage
|
||
|
|
||
|
Comparaison de *namespace*
|
||
|
==========================
|
||
|
|
||
|
Les *namespaces* d'un programme sont exposés sous forme de liens symboliques
|
||
|
dans le répertoire `/proc/<PID>/ns/`.
|
||
|
|
||
|
Deux programmes qui partagent un même *namespace* auront un lien vers la même
|
||
|
structure de données.
|
||
|
|
||
|
Écrivons un script ou un programme, `cmpns`, permettant de déterminer si deux
|
||
|
programmes s'exécutent dans les mêmes *namespaces*.
|
||
|
|
||
|
|
||
|
Exemples {.unnumbered}
|
||
|
--------
|
||
|
|
||
|
<div lang="en-US">
|
||
|
```sh
|
||
|
42sh$ ./cmpns $(pgrep influxdb) $(pgrep init)
|
||
|
- cgroup: differ
|
||
|
- ipc: differ
|
||
|
- mnt: differ
|
||
|
- net: differ
|
||
|
- pid: differ
|
||
|
- user: same
|
||
|
- uts: same
|
||
|
```
|
||
|
</div>
|
||
|
|
||
|
<div lang="en-US">
|
||
|
```sh
|
||
|
42sh$ ./cmpns $(pgrep init) self
|
||
|
- cgroup: same
|
||
|
- ipc: same
|
||
|
- mnt: same
|
||
|
- net: same
|
||
|
- pid: same
|
||
|
- user: same
|
||
|
- uts: same
|
||
|
```
|
||
|
</div>
|
||
|
|
||
|
Ici, `self` fait référence au processus actuellement exécuté.
|
||
|
|
||
|
Et pourquoi pas :
|
||
|
|
||
|
<div lang="en-US">
|
||
|
```sh
|
||
|
42sh$ unshare -m ./cmpns $$ self
|
||
|
- cgroup: same
|
||
|
- ipc: same
|
||
|
- mnt: differ
|
||
|
- net: same
|
||
|
- pid: same
|
||
|
- user: same
|
||
|
- uts: same
|
||
|
```
|
||
|
</div>
|