标签: lsof

如何从lsof -i的结果中找出命令的完整路径

lsof 是一个很棒的实用程序,现在才开始使用它。

lsof -i | grep smtp => 这给出了以下结果。

httpd.pl  212548          global    3u  IPv4 893092369      0t0  TCP server07.host...blah...
Run Code Online (Sandbox Code Playgroud)

在上面的例子中,httpd.pl是 perl 脚本,它发送垃圾邮件。

我怎么知道命令的完整路径。即在上面的结果中,我想知道的完整路径httpd.pl

我尝试在主目录中搜索,该文件httpd.pl不存在。而且,我尝试过lsof -p PID,这也没有给出它的路径。

有什么办法,我可以得到那个文件的完整路径吗?

注意:这种问题在共享主机环境中很常见。因此,它对于共享主机或任何 Web 服务器管理员都非常有用。

process smtp lsof files

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

lsof 不返回由同一用户打开的文件

考虑这个简单的场景:

  1. vim在一个终端中打开一个文本文件 ~/textfile.txt (尝试使用编辑和只读模式)。
  2. 在另一个终端中,我运行

/usr/sbin/lsof ~/textfile.txt

没有结果

为什么?

vim lsof open-files

7
推荐指数
1
解决办法
1296
查看次数

7
推荐指数
1
解决办法
7074
查看次数

lsof:没有 UID 的密码条目

我正在尝试在我的 Solaris 10 上运行命令 lsof |grep services 以查找任何包含占用磁盘空间的大文件的进程,但我收到了一堆行说:

lsof:没有 UID 105 的密码条目

我查看了 /etc/passwd 但没有 UID 为 105 的用户(我认为该用户已被删除)。

上面的 lsof 行表示什么?

solaris lsof command

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

lsof -i 不显示打开套接字的进程

我编写了一个基于 lsof 的脚本来监视特定应用程序的每个进程使用的套接字(每个进程一个套接字)。当我指定 -i 选项将打开的文件列表限制为套接字时,某些进程会丢失。

令 pid_list 为常量且格式正确的逗号分隔列表,包含 136 个进程。为什么结果有时小于136?

$ lsof -p $pid_list -a -i -nP -FpcnT | grep ^p | wc -l
135
$ lsof -p $pid_list -a -i -nP -FpcnT | grep ^p | wc -l
134
$ lsof -p $pid_list -a -i -nP -FpcnT | grep ^p | wc -l
136
Run Code Online (Sandbox Code Playgroud)

只需 1 个 pid 即可重现该问题。

$ clear ; lsof -p 5404  -a -i -nP -FpcnT
p5404
cprocess
nsource:port->dest:port
TST=ESTABLISHED
TQR=0
TQS=0
$ clear ; lsof …
Run Code Online (Sandbox Code Playgroud)

linux lsof

7
推荐指数
1
解决办法
8886
查看次数

使用 fuser 与 lsof 检查正在使用的文件

我一直在得到一些关于如何找出我的串行端口繁忙的建议。具体来说,当我尝试启动 gammu-smsd 时,它拒绝在 /dev/ttyS0 上启动,因为它说端口正忙:

sudo /etc/init.d/gammu-smsd start
Sep 30 16:16:51 porkypig gammu-smsd[25355]: Starting phone communication...
Sep 30 16:16:51 porkypig gammu-smsd[25355]: gammu: [Gammu            - 1.26.1 built 21:46:06 Nov 24 2009 using GCC 4.4]
Sep 30 16:16:51 porkypig gammu-smsd[25355]: gammu: [Connection       - "at115200"]
Sep 30 16:16:51 porkypig gammu-smsd[25355]: gammu: [Connection index - 0]
Sep 30 16:16:51 porkypig gammu-smsd[25355]: gammu: [Model type       - ""]
Sep 30 16:16:51 porkypig gammu-smsd[25355]: gammu: [Device           - "/dev/ttyS0"]
Sep 30 16:16:51 porkypig gammu-smsd[25355]: gammu: [Runing on        - …
Run Code Online (Sandbox Code Playgroud)

lsof fuser

6
推荐指数
1
解决办法
7189
查看次数

Memcache 'stats' 报告非零的 'curr_connections' - 但 lsof 显示没有套接字连接

我们的内存缓存守护进程报告非零的 'curr_connections'...

$ telnet memcache-server 11211
Escape character is '^]'.
stats
...
STAT curr_connections 12
...
Run Code Online (Sandbox Code Playgroud)

...然而,lsof显示没有套接字连接:

$ ssh memcache-server
# lsof -P -i -n | grep memcache
memcached 1759 memcached   26u  IPv4  11638      0t0  TCP *:11211 (LISTEN)
memcached 1759 memcached   27u  IPv6  11639      0t0  TCP *:11211 (LISTEN)
memcached 1759 memcached   28u  IPv4  11642      0t0  UDP *:11211 
memcached 1759 memcached   29u  IPv6  11643      0t0  UDP *:11211 
Run Code Online (Sandbox Code Playgroud)

我猜 'curr_connections' 并不意味着我认为它的作用......

lsof socket

6
推荐指数
1
解决办法
6898
查看次数

lsof 丢失文件

为什么 lsof 无法列出我打开的文件。例如,我使用文本编辑器打开主目录中的某个文件。

$ gedit ~/.python_history
Run Code Online (Sandbox Code Playgroud)

lsof甚至不能以 root 身份工作

$ sudo lsof | grep python_history
Run Code Online (Sandbox Code Playgroud)

没有列出任何内容。为什么?

编辑和保存文件也没有什么区别。运行 python 解释器也没有什么区别。

$ lsof | grep gedit
Run Code Online (Sandbox Code Playgroud)

确实列出了一堆文件,但没有列出我正在编辑的文件。

filesystems lsof processes

6
推荐指数
1
解决办法
795
查看次数

kpartx:删除映射后无法卸载磁盘

我无法卸载在其上创建并删除映射的分区kpartx

# mount /dev/sdb1 usb/
# cd usb/

# kpartx -a -p sda -r -s -v sda.img
add map loop0sda1 (254:5): 0 16777216 linear 7:0 2048
add map loop0sda2 (254:6): 0 16777216 linear 7:0 16779264
add map loop0sda3 (254:7): 0 440401920 linear 7:0 33556480
add map loop0sda4 (254:8): 0 26159792 linear 7:0 473958400

# kpartx -dv /dev/loop0
del devmap : loop0sda4
del devmap : loop0sda3
del devmap : loop0sda2
del devmap : loop0sda1

# cd ..
    
#umount usb/ …
Run Code Online (Sandbox Code Playgroud)

shell mount lsof loop-device kpartx

6
推荐指数
1
解决办法
1061
查看次数

为什么“lsof /dev/video0”不足以检查哪些进程正在使用摄像头?

五年前关于此命令的一个问题lsof声称它不会使用 cam 监视所有进程。但是当我在运行 testcam 时运行命令时,我得到:

COMMAND    PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
firefox-b 3077  lax  mem    CHR   81,0           808 /dev/video0
firefox-b 3077  lax  143u   CHR   81,0      0t0  808 /dev/video0
Run Code Online (Sandbox Code Playgroud)

表示什么DEVICE 81,0。我不太明白为什么它没有被监控,因为它显示块 81,0。

lsof camera

6
推荐指数
2
解决办法
2790
查看次数