Questions tagged «lsof»

lsof是列出进程的打开文件的工具

5
确定绑定到端口的进程
我知道使用命令: lsof -i TCP (或带有lsof的参数的某些变体),我可以确定哪个进程绑定到特定端口。如果我要启动要绑定到8080的东西,而其他人已经在使用该端口,但是我不知道是什么,这很有用。 有没有使用lsof的简便方法?我花时间在许多系统上工作,而lsof通常未安装。
90 networking  process  tcp  lsof 

7
谁有这个unix套接字对的另一端?
我想确定哪个进程具有UNIX套接字的另一端。 具体来说,我要问的是使用创建的一个socketpair(),尽管问题对于任何UNIX套接字都是相同的。 我有一个程序parent创建一个socketpair(AF_UNIX, SOCK_STREAM, 0, fds)和fork()。父进程关闭fds[1]并保持fds[0]通信。孩子做相反的事情close(fds[0]); s=fds[1]。然后孩子exec()的另一个程序child1。两者可以通过此套接字对来回通信。 现在,假设我知道谁parent是谁,但我想弄清楚谁child1是谁。我该怎么做呢? 我可以使用几种工具,但是没有一个可以告诉我哪个过程在套接字的另一端。我努力了: lsof -c progname lsof -c parent -c child1 ls -l /proc/$(pidof server)/fd cat /proc/net/unix 基本上,我可以看到两个插座以及有关它们的所有内容,但无法确定它们已连接。我正在尝试确定父级中的哪个FD与哪个子进程进行通信。

2
lsof和监听端口
我正在尝试让所有进程都在Mac OS X上侦听网络连接。netstat没有该-p选项,我正在尝试使用lsof lsof -i -sTCP:LISTEN 给了我听的过程的公平清单,但不是全部。例如,我可以通过telnet到端口10080,在该端口上我有一个进程在监听连接,但这未在的输出中显示lsof。我想念什么? $ telnet localhost 10080 Trying ::1... Connected to localhost. Escape character is '^]'. ^] telnet> Connection closed. 但 $ sudo lsof -n -i | grep 10080 $
50 osx  lsof 

1
如何实时监视进程的打开文件?
我知道我可以lsof 及时在Linux机器上使用来查看进程的打开文件。但是,进程可以如此快速地打开,更改和关闭文件,以致在使用标准外壳脚本(例如watch)监视文件时,我无法看到它,如“在Linux上监视打开的进程文件(实时)”中所述。。 因此,我认为我正在寻找一种简单的方法来审核流程,并查看经过一段时间后所做的工作。如果还可以查看(尝试)建立了哪些网络连接并在没有时间开始审核之前有时间运行审核,则可以开始审核。 理想情况下,我想这样做: sh $ audit-lsof /path/to/executable 4530.848254 OPEN read /etc/myconfig 4530.848260 OPEN write /var/log/mylog.log 4540.345986 OPEN read /home/gert/.ssh/id_rsa <-- suspicious 4540.650345 OPEN socket TCP ::1:34895 -> 1.2.3.4:80 | [...] 4541.023485 CLOSE /home/gert/.ssh/id_rsa <-- would have missed 4541.023485 CLOSE socket TCP ::1:34895 -> 1.2.3.4:80 | this when polling 使用strace和一些标志看不到每个系统调用是否可能?

3
如何解释lsof命令的输出?
root@host [/home2]# lsof /home2 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME php 3182 ctxmortg cwd DIR 8,17 4096 32858196 /home2/ctxmortg/public_html/hello php 3182 ctxmortg 3r REG 8,17 46404 55781766 /home2/ctxmortg/public_html/hello/cache/subprimemortgagemorgage.com/cache-zch-8284-cache.txt php 3185 ctxmortg cwd DIR 8,17 4096 32858196 /home2/ctxmortg/public_html/hello php 3185 ctxmortg 3r REG 8,17 4185 35962154 /home2/ctxmortg/public_html/hello/cache/curl/http%3A%2F%2Fimage.yahoo.cn%2Fs%3Fq%3DNudity%26c%3D0%26s%3D%26page%3D277 php …
33 lsof 

6
从保持打开状态的已删除文件中释放磁盘空间的最佳方法
嗨,我有许多文件已被删除,但是由于某种原因,与删除的文件相关联的磁盘空间无法利用,直到我明确杀死占用磁盘空间的文件的过程为止 $ lsof /tmp/ COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME cron 1623 root 5u REG 0,21 0 395919638 /tmp/tmpfPagTZ4 (deleted) 上面已删除的文件占用的磁盘空间会引起问题,例如尝试使用Tab键自动完成文件路径时出现错误 bash: cannot create temp file for here-document: No space left on device 但是,在我运行kill -9 1623该PID的空间后,就不再释放该错误。 我的问题是: 为什么第一次删除文件时没有立即释放此空间? 找回与已删除文件关联的文件空间的最佳方法是什么? 并且请让我知道我使用的任何错误术语或有关此情况的其他任何相关信息。


3
是否通过加载到RAM的进程打开文件?
命令,例如sed,是程序,程序是文件内的编码逻辑,而这些文件位于硬盘上的某个位置。但是,在运行命令时,会将硬盘中文件的副本放到RAM中,它们在那里可以发挥作用并可以做些事情,因此称为进程。 进程可以利用其他文件,对其进行读取或写入,如果这样做,这些文件称为打开文件。有一个命令可以列出所有正在运行的进程的所有打开文件:lsof。 好的,所以我想知道的是,对于其他类型的文件,例如一个没有编程的逻辑,而仅仅是容器的命令,一个命令的双重寿命(一个在硬盘上,另一个在RAM中)是否也适用吗?数据。 我的假设是,进程打开的文件也将加载到RAM中。我不知道这是否是真的,这只是一种直觉。 拜托,有人能理解吗?
24 files  memory  lsof 

1
使用lsof连续监视文件
有没有办法使lsof连续工作以实时监视每个打开的文件? 我不知道进程的名称。我希望lsof可以连续工作一段时间,直到看到列表包含我想要的内容为止。
23 files  lsof 

6
“ lsof”命令的替代方案?
在许多情况下,我必须使用的机器上未安装“ lsof”,但是非常需要lsof的“功能”(例如,在AIX上)。:\ 非Windows世界中是否有类似“ lsof”的应用程序? 更新:例如:我需要知道哪些进程使用“ / home / username”目录?



4
软件包升级后无法重新安装/恢复为只读
我正在使用Debian Stretch。我的根分区已安装read-only。仅当我安装或升级软件包时,才/重新安装到read-write(通过使用apt钩子),然后重新安装回ro。 有时在软件包升级后,我无法重新安装/回只读状态: mount -o remount,ro / mount: / is busy 在较旧的Debian版本(Wheezy)上,我可以列出已与取消链接的打开文件lsof: lsof +L1 或者,更具体地说,是防止阻止/重新安装到ro的文件: { lsof +L1 ; lsof|sed -n '/SYSV/d; /DEL|(path /p;' ; } | grep -Ev '/(dev|home|tmp|var)' 但是,在Debian Stretch上,lsof +L1不会列出任何文件。 我没有看到任何改变+|-L在man lsof这可以解释为什么它停止工作。 为什么lsof + L1不再列出已取消链接的打开文件? 如何列出阻止/重新挂载为只读的文件? 更新 我已经停止了所有可以停止的进程,只有它们可以运行,init并且getty仍在运行,但是仍然无法重新安装/到ro。
13 debian  files  apt  readonly  lsof 

4
lsof -p PID与lsof | grep PID
我不了解lsof命令的输出。 当我写 lsof -p PID 我得到4行,当我写 lsof | grep PID 我得到数百行。 它不应该返回相同的结果吗? 谢谢你的回复。这是输出。看起来是子流程,还是这个任务是什么意思? lsof -p 29076 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME java 29076 pr cwd unknown /proc/29076/cwd (readlink: Permission denied) java 29076 pr rtd unknown /proc/29076/root (readlink: Permission denied) java 29076 pr txt unknown /proc/29076/exe (readlink: …
12 process  lsof 

2
移动文件,但仅在关闭状态下
我想在关闭后立即移动由外部进程创建的大文件。 这个测试命令正确吗? if lsof "/file/name" then # file is open, don't touch it! else if [ 1 -eq $? ] then # file is closed mv /file/name /other/file/name else # lsof failed for some other reason fi fi 编辑:该文件表示一个数据集,我必须等到它完成移动后才能使另一个程序对其执行操作。这就是为什么我需要知道外部进程是否已使用文件完成的原因。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.