解决方法
我喜欢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层次结构包含有关所有正在运行的进程的大量信息.值得四处寻找!