使用方法unshare
(使用しない方法CLONE_NEWPID flag in child process clone syscall
)は、別々のPID名前空間に各サブプロセスを作成します。 PID名前空間で最初の子孫を正常に作成できますが、他のPID名前空間から2番目の子孫を作成する方法がわかりません。
親プロセスの疑似コード
1 unshare CLONE_NEWPID
2 spawn child1
3
4 unshare CLONE_NEWPID
5 spawn child2
child1は別のPID名前空間を入力し、PID 1を取得します。実行が4行に達するとSys(EINVAL)
エラーが発生します。
答え1
マニュアルを読むことは、unshare CLONE_NEWPID
子プロセスではなく呼び出しプロセスに影響を与えます。これを何度も呼び出すのは重複しているようです。最初の呼び出し以降、すべての子プロセスは新しいpid名前空間にあります。
それらを所定の位置に置くには、電話する別の親が必要ですunshare CLONE_NEWPID
。
努力する
repeat:
fork
if child:
unshare CLONE_NEWPID
spawn
これはすべてテストされておらず、これは私が次に試みるでしょう。私もあなたが使用する必要があることを読んだclone
。