/var/run/mysqld/mysqld.sock/
オープンソケットで作ってみましょう。stat
インデックスノードを取得できます文書(ここ1200)
# stat /var/run/mysqld/mysqld.sock
File: /var/run/mysqld/mysqld.sock
Size: 0 Blocks: 0 IO Block: 4096 socket
Device: 17h/23d Inode: 1200 Links: 1
Access: (0777/srwxrwxrwx) Uid: ( 109/ mysql) Gid: ( 121/ mysql)
Access: 2020-08-24 07:06:50.716419994 +0200
Modify: 2020-07-20 14:51:30.892060665 +0200
Change: 2020-07-20 14:51:30.892060665 +0200
しかし、私が望むのは、ディスクファイルシステムのinode(ext4など)ではなく、オペレーティングシステムのソケットinode(例/proc/net/unix
:4517115):
# grep mysqld.sock /proc/net/unix
ffff9efa85f1bc00: 00000002 00000000 00010000 0001 01 4517115 /var/run/mysqld/mysqld.sock
問題はファイルシステムソケットinode(1200)、オペレーティングシステムのソケットinodeを取得する方法(4517115)?残念ながら、、にss
依存することはできず、コンテナがソケットファイルを生成するとき、これらのソースlsof
も/proc/net/unix
信頼できません(例:)。
- ss、lsof、およびその他のツールは、これらのソケットをまったくリストしないことがよくあります(おそらくそのツールはソケットに依存する可能性があります
/proc/net/unix
)。 /proc/[pid]/net/unix
ホスト上のコンテナの他のパスにマップされたファイルを一致させることは不可能であるか、少なくとも難しい可能性があるため、信頼できません。また、/proc/net/unix
これらのソケット自体がリストされていない可能性があります。