gpt4 book ai didi

bash - lsof 应该为一组 pids 提供所有打开的文件

转载 作者:行者123 更新时间:2023-11-29 08:49:05 25 4
gpt4 key购买 nike

我有 30 个进程实例在服务器上运行,我想记录每个进程的打开文件以供分析。

我运行了以下命令:

* ps auwwx | grep PROG_NAME | awk '{print $2}' | xargs lsof -p | less

它提示说,“lsof: status error on : No such file or directory”

但是,如果我运行 lsof -p < pid >它为我提供了该进程的打开文件列表。我怎样才能获得 FreeBSD 机器上所有 30 个进程实例的所有打开文件的列表。

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

最佳答案

lsof -p 选项采用逗号分隔的 PID 列表。您使用 xargs 的方式会将 pids 作为单独的参数传递,导致一些被解释为文件名。

尝试 lsof -p $(your grep | tr '\012' ,) 这将有一个尾随逗号,我不确定 lsof 是否会关心但如有必要,您可以 sed 关闭它。

关于bash - lsof 应该为一组 pids 提供所有打开的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12468629/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com