标签: lsof

生存指南

lsof是一个增强的强大的命令行实用程序,适用于unix系统.它列出了打开的文件,显示有关它们的信息.由于大多数内容都是unix系统上的文件,因此lsof可以为系统管理员提供大量有用的诊断数据.

有哪些使用lsof最常用和最有用的方法,以及使用哪些命令行开关?

unix sysadmin lsof

101
推荐指数
6
解决办法
7万
查看次数

查看在Mac OS X中使用文件的进程

我希望能够跟踪文件,看看哪个进程正在触摸该文件.那可能吗?我知道我可以在活动监视器中看到打开进程的列表,但我认为很快就能让我看到它.原因是我正在使用框架,我认为正在使用框架的系统版本而不是调试版本,我想看看哪个进程正在触及它.

unix macos terminal audit lsof

88
推荐指数
5
解决办法
7万
查看次数

lsof打印数字端口

如何lsof生成数字端口信息而不是尝试将端口解析为服务名称?

例如,我想在事实上TCP *:http (LISTEN)给我TCP *:80 (LISTEN),如果可能的话,我再也不想在lsof打印输出中看到另一个服务名称了.因此,如果有一种方法可以使数字端口成为默认值,我也想了解如何做到这一点.

unix tcp ports lsof

52
推荐指数
2
解决办法
3万
查看次数

在Mac OS X中,如何获得文件描述符使用的准确计数?

在Linux上,ulimit -n可用于更改或查看进程的文件描述符数量限制,并且lsof -p nnn | wc -l似乎始终报告实际的文件描述符用法.

但是在Mac OS X上,lsof -p nnn | wc -l可以返回高于限制的数字.我想这意味着lsof返回的不仅仅是文件描述符,但我不知道是什么.

结论:如何在Mac OS X中准确计算文件描述符的使用情况?

unix macos lsof

34
推荐指数
3
解决办法
2万
查看次数

如何从unix系统中的另一个进程关闭文件描述符

您可以使用命令lsof来获取所有正在运行的进程的文件描述符,但我想要做的是关闭其中一些描述符,而不是在该进程内部.这可以在Windows上完成,因此您可以轻松取消阻止某些应用程序.

那有什么命令或功能吗?

unix bash file lsof file-descriptor

27
推荐指数
2
解决办法
3万
查看次数

看到太多的lsof无法识别协议


我有一个Java进程/应用程序.当我在那个java进程上运行/ usr/sbin/lsof -p时,我看到很多"无法识别协议".另外,有趣的是,文件描述符(FD)以非常稳定的速率增加.正在创建的FD正在描述为"无法识别协议".

那么,有没有办法对java进程进行检测/分析,以便确定谁在创建那么多FD.任何工具的任何详细解释都会非常有用.

一个快速的谷歌搜索告诉我strace是一种方式,但IIUC,将显示来自java进程的Linux系统调用.我更感兴趣的是我的java代码的哪一部分比正在生成的系统调用表现得差.

同样,任何想法/建议都会很棒!

java linux file lsof

23
推荐指数
2
解决办法
3万
查看次数

subprocess.Popen后如何清理?

我有一个长期运行的python脚本与perl worker子进程.数据通过stdin和stdout发送进出子进程.必须定期重新启动孩子.

不幸的是,经过一段时间的运行,它耗尽了文件('太多的打开文件').lsof显示了许多剩余的开放管道.

在Popen'd过程之后清理的正确方法是什么?这就是我现在正在做的事情:

def start_helper(self):
    # spawn perl helper
    cwd = os.path.dirname(__file__)
    if not cwd:
        cwd = '.'

    self.subp = subprocess.Popen(['perl', 'theperlthing.pl'], shell=False, cwd=cwd,
                                 stdin=subprocess.PIPE, stdout=subprocess.PIPE,
                                 bufsize=1, env=perl_env)

def restart_helper(self):
    # clean up
    if self.subp.stdin:
        self.subp.stdin.close()
    if self.subp.stdout:
        self.subp.stdout.close()
    if self.subp.stderr:
        self.subp.stderr.close()

    # kill
    try:
        self.subp.kill()
    except OSError:
        # can't kill a dead proc
        pass
    self.subp.wait() # ?

    self.start_helper()
Run Code Online (Sandbox Code Playgroud)

python subprocess pipe lsof popen

15
推荐指数
1
解决办法
2万
查看次数

地址已在使用中,但在netstat或lsof中没有任何内容

我尝试在端口7054上启动Python SimpleHTTPServer:

$ sudo python -m SimpleHTTPServer 7054
...
socket.error: [Errno 98] Address already in use
Run Code Online (Sandbox Code Playgroud)

所以,我运行了以下命令:

$ sudo netstat -ntpu | grep 7054
$ sudo lsof -i -n -P | grep 7054
Run Code Online (Sandbox Code Playgroud)

但我没有结果.

python linux port netstat lsof

14
推荐指数
1
解决办法
8937
查看次数

lsof应该为一组pid提供所有打开的文件

我在服务器上运行了30个进程实例,并希望为每个进程记录打开的文件以进行分析.

我运行了以下命令:

* ps auwwx | grep PROG_NAME | awk '{print $2}' | xargs lsof -p | less
Run Code Online (Sandbox Code Playgroud)

它抱怨说,"lsof:状态错误:没有这样的文件或目录"

但是,如果我运行lsof -p < pid >它,则为我提供该进程的打开文件列表.如何在FreeBSD计算机上获取该进程的所有30个实例的所有打开文件的列表.

此外,我不希望列出共享库.如果我这样做-d "^txt"不显示我想要显示的其他数据库文件.有没有其他方法可以查出.so文件?

bash shell scripting freebsd lsof

12
推荐指数
2
解决办法
4万
查看次数

lsof列出的FD管道列是什么意思?

我正在使用以下命令获取管道列表:

lsof | grep PIPE 
Run Code Online (Sandbox Code Playgroud)

我想知道FD列的值是什么意思(第5页http://i.imgur.com/KHczptf.png).我认为,rw平均读取写入分别,但到底是什么下面的每一个字符,这些装置的数量?


我知道FD意味着文件描述符,我想弄清楚的是列中显示的值是什么意思,比如3r,16w,20r等.

linux shell command lsof file-descriptor

12
推荐指数
1
解决办法
2万
查看次数

标签 统计

lsof ×10

unix ×5

linux ×3

bash ×2

file ×2

file-descriptor ×2

macos ×2

python ×2

shell ×2

audit ×1

command ×1

freebsd ×1

java ×1

netstat ×1

pipe ×1

popen ×1

port ×1

ports ×1

scripting ×1

subprocess ×1

sysadmin ×1

tcp ×1

terminal ×1