当前位置:  开发笔记 > 编程语言 > 正文

unix进程使用的文件

如何解决《unix进程使用的文件》经验,为你挑选了2个好方法。

fuser命令让我知道哪些进程正在使用文件或目录.

我正在寻找相反的命令:让我知道进程正在使用哪些文件.


更新

忘记提到它是用于Solaris系统的.



1> Johannes Sch..:
lsof -p 

从这里开始

lsof代表" LiSt Open Files ".这个shell命令看起来很简单:它列出了有关UNIX框上进程打开的文件的信息.

尽管它的(明显的)适度的任务声明,lsof实际上是最强大和最有用的UNIX命令之一.它的原始功能来自UNIX的设计原则之一,通常被描述为"在UNIX中,一切都是文件".这意味着打开文件的lsof概念不仅涵盖常规文件,还包括以下内容:

目录

流或网络文件(例如,Internet或UNIX域套接字和NFS文件)

本机库(例如,链接到进程的.soor .dylibdynamic库)

块和字符特殊文件(例如,磁盘卷,外部硬盘驱动器,控制台或鼠标)

管道


等等,我找不到我的系统上的lsof!

lsof是一种非常流行的工具,它已被移植到几乎所有UNIX方言(Linux,Mac OS X,BSD,Solaris等).如果您的盒子上没有它,请使用常用的包管理系统进行安装.您可以在Sun免费软件上找到Solaris的lsof软件包.



2> 小智..:

虽然我不会吝惜任何人学习的Dtrace或获取经验安装软件,Solaris中有一个命令来查看一个进程打开文件:在/ usr/bin中/ PFILES

% tail -f /etc/motd &
[1] 6033

% pfiles 6033
6033:   tail -f /etc/motd

      Current rlimit: 256 file descriptors
       0: S_IFREG mode:0644 dev:182,65538 ino:163065 uid:0 gid:3 size:54
          O_RDONLY|O_LARGEFILE
          /etc/motd
       1: S_IFCHR mode:0620 dev:299,0 ino:718837882 uid:101 gid:7 rdev:24,3
          O_RDWR|O_NOCTTY|O_LARGEFILE
          /dev/pts/3
       2: S_IFCHR mode:0620 dev:299,0 ino:718837882 uid:101 gid:7 rdev:24,3
          O_RDWR|O_NOCTTY|O_LARGEFILE
          /dev/pts/3

推荐阅读
pan2502851807
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有