pri*_*ero 12 linux pipe open-files proc socket
可能重复:
/proc/PID/fd/X 链接号
我有一个关于文件描述符及其在 proc 文件系统中的链接的问题。我观察到,如果我从 proc 列出某个进程的文件描述符,ls -la /proc/1234/fd
我会得到以下输出:
lr-x------ 1 root root 64 Sep 13 07:12 0 -> /dev/null
l-wx------ 1 root root 64 Sep 13 07:12 1 -> /dev/null
l-wx------ 1 root root 64 Sep 13 07:12 2 -> /dev/null
lr-x------ 1 root root 64 Sep 13 07:12 3 -> pipe:[2744159739]
l-wx------ 1 root root 64 Sep 13 07:12 4 -> pipe:[2744159739]
lrwx------ 1 root root 64 Sep 13 07:12 5 -> socket:[2744160313]
lrwx------ 1 root root 64 Sep 13 07:12 6 -> /var/lib/log/some.log
Run Code Online (Sandbox Code Playgroud)
我理解了文件描述符的含义,我从我的示例中了解到文件描述符 0 1 2 和 6,它们与我计算机上的物理资源相关联,而且我猜 5 已连接到网络上的某些资源(因为socket),但我不明白括号中数字的含义。是否指向资源的某些属性?还有为什么有些链接坏了?最后,只要我已经问了一个问题:) 什么是管道?
它们是否指向资源的某些属性?
是的。它们是允许您识别资源的唯一标识符。
还有为什么有些链接坏了?
因为它们是指向不存在于文件系统中的思想的链接,所以您不能以正常方式遵循该链接。本质上,链接被滥用作为返回资源类型和唯一标识符的一种方式。
什么是管?
顾名思义,管道是两点之间的连接,任何放在一端的东西都会从另一端出来。
小智 6
尝试在此处查看如何获取有关开放管道的更多信息:
how-can-i-get-more-info-on-open-pipes-show-in-proc-in-linux
lsof | grep 2744159739
Run Code Online (Sandbox Code Playgroud)
“管道”在一起的两个命令都必须正常工作,如果其中之一不正常,则管道已损坏。管道也可能被其他东西打破,这只是我想到的第一个。
管道(例如在 bash/ksh shell 中它由竖线表示)允许单独的进程一起通信,将从一个命令接收到的信息传递到另一个命令以供下一个处理。例如:
ls -l | grep testfile
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
27612 次 |
最近记录: |