linux – 如何判断进程打开的文件?

前端之家收集整理的这篇文章主要介绍了linux – 如何判断进程打开的文件?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个守护进程,我想知道它打开了哪些文件(理想情况是它的CWD是什么).有没有可以告诉我的 shell命令?

解决方法

我喜欢lsof,但我觉得这样的简单问题太过分了. / proc文件系统包含您想知道的所有内容.也许一个例子是最好的:
# ps ax|grep tail
 7196 pts/4    S+     0:00 tail -f /var/log/messages
 8773 pts/0    R+     0:00 grep tail
# ls -l /proc/7196/cwd
lrwxrwxrwx 1 insyte insyte 0 2009-07-29 19:05 /proc/7196/cwd -> /home/insyte
# ls -l /proc/7196/fd
total 0
lrwx------ 1 insyte insyte 64 2009-07-29 19:05 0 -> /dev/pts/4
lrwx------ 1 insyte insyte 64 2009-07-29 19:05 1 -> /dev/pts/4
lrwx------ 1 insyte insyte 64 2009-07-29 19:02 2 -> /dev/pts/4
lr-x------ 1 insyte insyte 64 2009-07-29 19:05 3 -> /var/log/messages

如您所见,/ proc / $PID目录包含一个名为“cwd”的符号链接,用于链接进程的CWD.对于/ proc / $PID / fd中列出的打开文件描述符也是如此.

/ proc / $PID层次结构包含有关所有正在运行的进程的大量信息.值得四处寻找!

原文链接:https://www.f2er.com/linux/397722.html

猜你在找的Linux相关文章