您尚未登录。

#1 2019-09-25 20:26:03

lujun9972
会员
注册时间: 2016-10-21
帖子: 73

[已解决]请问/proc/${pid}/fd/${fd}指向'pipe:[34038]',这个'pipe:[34038]'是个什么意思?

因为启动Emacs的时候不知道为什么卡住了,就用strace -p $(pgrep emacs)想看看卡那了,然后发现它在从7号fd中读取内容

lujun9972:~/ $ sudo strace -p 1265
[sudo] lujun9972 的密码:
strace: Process 1265 attached
read(7, 

然后我去 /proc/1265/fd/下想看7号fd指向哪,

lujun9972:fd/ $ ls -l
总用量 0
lr-x------ 1 lujun9972 users 64  9月 25 20:04 0 -> /dev/null
lrwx------ 1 lujun9972 users 64  9月 25 20:04 1 -> 'socket:[27554]'
lrwx------ 1 lujun9972 users 64  9月 25 20:04 2 -> 'socket:[27554]'
lrwx------ 1 lujun9972 users 64  9月 25 20:04 3 -> 'anon_inode:[timerfd]'
lrwx------ 1 lujun9972 users 64  9月 25 20:04 4 -> 'anon_inode:[eventfd]'
lr-x------ 1 lujun9972 users 64  9月 25 20:04 5 -> anon_inode:inotify
lr-x------ 1 lujun9972 users 64  9月 25 20:04 7 -> 'pipe:[34038]'

然后就晕了,这里的链接除了 /dev/null 看得懂外,其他的都看不懂...

最近编辑记录 lujun9972 (2019-09-26 22:13:08)

离线

#2 2019-09-25 21:30:23

xtricman
エクス·トリクマン
注册时间: 2012-12-26
帖子: 1,267

Re: [已解决]请问/proc/${pid}/fd/${fd}指向'pipe:[34038]',这个'pipe:[34038]'是个什么意思?

管道啊。你不会看文档啊。http://man7.org/linux/man-pages/man5/proc.5.html


反社会,精神极其不稳定,随时可能炸碎身边所有人

离线

#3 2019-09-25 22:23:58

farseerfc
会员
注册时间: 2013-07-30
帖子: 210
个人网站

Re: [已解决]请问/proc/${pid}/fd/${fd}指向'pipe:[34038]',这个'pipe:[34038]'是个什么意思?

嗯如樓上所說 man 5 proc 的 /proc/[pid]/fd/ 條目有詳細解釋。
以及諸如 pipe: 和 socket: 這種的後面方括號裏面的是 inode 號,對應 PipeFS 和 SockFS https://www.linux.org/threads/pipefs-so … tyfs.9638/
其它沒 inode 號的是 anon_inode: 後面寫文件類型(創建它的系統調用類型)


computerは神様だと信じていて
だからVIMの上でずっと指が舞って
自ら恋愛相手を作り出して

离线

#4 2019-09-26 09:39:42

lujun9972
会员
注册时间: 2016-10-21
帖子: 73

Re: [已解决]请问/proc/${pid}/fd/${fd}指向'pipe:[34038]',这个'pipe:[34038]'是个什么意思?

哦,抱歉,没想到可以在 man 5 proc 中可以找到答案。

能不能再请教一下,有办法根据proc的inode找出是跟哪个程序的输出端相连吗?是不是只能遍历/proc/*/fd/*的指向才能找出来呢?

最近编辑记录 lujun9972 (2019-09-26 09:43:21)

离线

#5 2019-09-26 10:05:04

xtricman
エクス·トリクマン
注册时间: 2012-12-26
帖子: 1,267

Re: [已解决]请问/proc/${pid}/fd/${fd}指向'pipe:[34038]',这个'pipe:[34038]'是个什么意思?

标准的Linux内核似乎没有这个操作。可能sysdig之类的可以。而且就不兴人家有两个进程同时持有管道另一端的fd吗?


反社会,精神极其不稳定,随时可能炸碎身边所有人

离线

#6 2019-09-26 11:00:58

farseerfc
会员
注册时间: 2013-07-30
帖子: 210
个人网站

Re: [已解决]请问/proc/${pid}/fd/${fd}指向'pipe:[34038]',这个'pipe:[34038]'是个什么意思?

嗯大概只能遍歷 /proc/*/fd/* 吧,或者 lsof | grep FIFO ,不過 lsof 應該也就是遍歷 /proc/*fd/


computerは神様だと信じていて
だからVIMの上でずっと指が舞って
自ら恋愛相手を作り出して

离线

#7 2019-09-26 12:23:25

xtricman
エクス·トリクマン
注册时间: 2012-12-26
帖子: 1,267

Re: [已解决]请问/proc/${pid}/fd/${fd}指向'pipe:[34038]',这个'pipe:[34038]'是个什么意思?

farseerfc 说:

嗯大概只能遍歷 /proc/*/fd/* 吧,或者 lsof | grep FIFO ,不過 lsof 應該也就是遍歷 /proc/*fd/

所以我讲嘞,sysdig要加载一个内核模块的,兴许那个模块提供了什么魔法功能,不需要遍历procfs也能查询到此类信息


反社会,精神极其不稳定,随时可能炸碎身边所有人

离线

#8 2019-09-26 22:10:11

lujun9972
会员
注册时间: 2016-10-21
帖子: 73

Re: [已解决]请问/proc/${pid}/fd/${fd}指向'pipe:[34038]',这个'pipe:[34038]'是个什么意思?

明白了,谢谢两位大侠.

离线

页脚