この内容は以下の書籍を参考にしています。
『Softwea Design [別冊] Linux ブートキャンプ』(p101)
※ ソケットとは具体的にはソケットファイルのことです。
lsof -P -n -i:8000
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
docker-pr 1382 root 4u IPv4 30221 0t0 TCP *:8000 (LISTEN)
docker-pr 1388 root 4u IPv6 30230 0t0 TCP *:8000 (LISTEN)
LISTENしているPIDを調べます。
↑で調べたPIDのFDは/proc/1382/fd
ディレクトリに格納されています。
ll /proc/1382/fd
total 0
dr-x------ 2 root root 0 Jul 16 16:48 ./
dr-xr-xr-x 9 root root 0 Jul 16 16:48 ../
lr-x------ 1 root root 64 Jul 16 16:48 0 -> /dev/null
l-wx------ 1 root root 64 Jul 16 16:48 1 -> /dev/null
l-wx------ 1 root root 64 Jul 16 16:48 10 -> 'pipe:[30570]'
lr-x------ 1 root root 64 Jul 16 16:48 11 -> 'pipe:[30571]'
l-wx------ 1 root root 64 Jul 16 16:48 12 -> 'pipe:[30571]'
l-wx------ 1 root root 64 Jul 16 16:48 2 -> /dev/null
lrwx------ 1 root root 64 Jul 16 16:48 4 -> 'socket:[30221]'
lrwx------ 1 root root 64 Jul 16 16:48 6 -> 'anon_inode:[eventpoll]'
lr-x------ 1 root root 64 Jul 16 16:48 7 -> 'pipe:[30222]'
l-wx------ 1 root root 64 Jul 16 16:48 8 -> 'pipe:[30222]'
lr-x------ 1 root root 64 Jul 16 16:48 9 -> 'pipe:[30570]'
ソケットファイルの実体は/proc/1382/net/tcp
ファイルです。
ref.
代表的なシステムコールは以下のとおりです。
システムコールは以下を参照してください。
SYSCALLS