これはcgroupツリーです。ルートノードはデモで、子ノードは1つだけです。
demo/
├── cgroup.clone_children
├── cgroup.procs
├── cgroup.sane_behavior
├── child
│ ├── cgroup.clone_children
│ ├── cgroup.procs
│ ├── notify_on_release
│ ├── pool_size
│ └── tasks
├── notify_on_release
├── pool_size
├── release_agent
└── tasks
私は子ノードを削除するためにrm -rf hit errorを試しましたが、rmdirは正常に動作します。
[root@iZ8vbf3rrty84cddfc7w8mZ cgroup]# rm -rf demo/child/
rm: cannot remove ‘demo/child/cgroup.procs’: Operation not permitted
rm: cannot remove ‘demo/child/tasks’: Operation not permitted
rm: cannot remove ‘demo/child/pool_size’: Operation not permitted
rm: cannot remove ‘demo/child/notify_on_release’: Operation not permitted
rm: cannot remove ‘demo/child/cgroup.clone_children’: Operation not permitted
[root@iZ8vbf3rrty84cddfc7w8mZ cgroup]#
[root@iZ8vbf3rrty84cddfc7w8mZ cgroup]# rmdir demo/child/
[root@iZ8vbf3rrty84cddfc7w8mZ cgroup]#
rmdirは動作しますが、rm -rfがここで動作しない理由
答え1
rm -rf
すべてのファイルを削除したら、ディレクトリを削除します。rmdir
ディレクトリを削除するだけです。
pool_size
cgroupから個々のファイルを削除することは意味がありません。それは何ですか?する?しかし、cgroupを削除することは意味があります。rm -rf
偽のファイルが実際のファイルと同じように見えたので、私は知りませんでした。
実際、これは実際のファイルとは逆です。実際のディレクトリにファイルがないまでは削除できませんが、ファイルがある場合は特定の偽のディレクトリを削除する必要があります。
だから。
答え2
このrm
コマンドはすべてのファイルも削除します(cgroup擬似ファイルシステム)。
rmdir
すべてのファイルが削除されると、このコマンドはディレクトリを削除します。
擬似ファイルシステムをファイルとして扱っていないようです。だから渡すことができます。
これがバグかどうかはわかりません。