名前空間の最後のプロセスが終了したらどうなりますか?

名前空間の最後のプロセスが終了したらどうなりますか?

私はLinuxを使用しています。

インストール名前空間にプロセスがあります。その過程で一つ作りましたmount -t tmpfs tmpfs /mountpoint

プロセスが終了し、そのインストール名前空間にプロセスがなくなった場合はどうなりますか?ファイルシステムは自動的にマウント解除されますか?名前空間のマウントが破損していますか?名前空間とマウントがまだアクティブな場合はどうすればアクセスできますか?

ネットワークネームスペースにプロセスがなくなったら、tun / tap / macvtapインターフェースはどうなりますか?

ベストアンサー1

私も同じことが気になって小さなテストを実行しました(カーネル4.20.0でutil-linux 2.33のunshareを使用して、そのバージョンのunshareのマンページには、読んでみる価値のある共有/プライベートマウントに関するいくつかの注意事項があります。あり、YMMVは次のようになります)。以前のバージョンを使用しています。

簡単に言うと:はい、名前空間の最後のプロセスが終了すると、ファイルシステムはマウント解除されます。


私の場合、テスト中の機器はですdm-6いいえ「外部」ネームスペースにインストールされます。

ウィンドウ1:

cd /sys/fs/ext4
ls -d dm-6
# No such file or directory
ウィンドウ2:
unshare -m
mount /dev/dm-6 /mnt/tmp
# don't exit yet, keep the namespace active
ウィンドウ3:ウィンドウ1と同じことを行います。

ウィンドウ1:

ls -d dm-6
# exists now

ウィンドウ2:unshare環境終了

ウィンドウ1:もう一度確認してください。dm-6まだ残っています。

ウィンドウ3:unshare環境終了

ウィンドウ1:もう一度確認するとdm-6再び消えました。


もう一つの便利なデモ/テスト:似たようなアイデアですが、3つのウィンドウを使用するのではなく、ウィンドウ2に2回入って終了します。dmesgこの場合は、ファイルシステムのマウントに関するカーネルメッセージが2回表示されることを確認するか、記録して確認してください。

おすすめ記事