/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
이러한 소켓 자체가 나열되지 않을 수도 있습니다.