每次执行都会lsof
发出有关 TraceFS 的警告:
$ lsof any-file
lsof: WARNING: can't stat() tracefs file system /sys/kernel/debug/tracing
Output information may be incomplete.
$ mount | grep trace
tracefs on /sys/kernel/debug/tracing type tracefs (rw,relatime)
Run Code Online (Sandbox Code Playgroud)
(这是在 Ubuntu 15.10 上,完全更新)
正常运行时挂载TraceFS是否正常?
如果是这样,我怎么能告诉lsof
跳过它?
如何查看哪些应用程序正在使用互联网?如何阻止互联网访问一个特定的应用程序?Ubuntu 软件中心是否有针对它的 GUI 工具?提前致谢!
当我像这样将 lsof 与 sudo 一起使用时
sudo lsof ~
lsof: WARNING: can't stat() fuse.gvfs-fuse-daemon file system /home/nes/.gvfs
Output information may be incomplete.
Run Code Online (Sandbox Code Playgroud)
但是,当我在没有 sudo 的情况下使用它时,我没有收到此错误。
这个消息是什么意思?
我当前的系统:14.04.4 LTS (GNU/Linux 3.13.0-85-generic x86_64)
$ free
total used free shared buffers cached
Mem: 16366288 16090588 275700 4047472 1019652 5253144
-/+ buffers/cache: 9817792 6548496 Swap: 7813116 7308592 504524
$ cat /proc/sys/fs/file-nr
1196103 0 1624594
Run Code Online (Sandbox Code Playgroud)
几个月来(以及多次更新),我遇到了一个问题,即在使用我的机器几天后(每天暂停它)内存使用量和分配的文件描述符数量突然激增。
突然间,“提交的”内存上升到大约 120 - 160 GB(!)。通常这个值位于我的物理 RAM 周围。另一个症状是我所有的 RAM + 交换都用完了。结果是一个无法使用的系统。目前我只能通过重新启动来解决这种情况。在关闭 X 后杀死几乎所有进程无助于释放提交的值。
一个强有力的指标似乎是 /proc/sys/fs/file-nr 中打开文件计数器的不合理的高值——它超过了 200 万。最近我试图将其限制为 1624594,但唯一的结果是(当然)我没有用完内存,而是用完了 FD。
有了 Munin,我可以看到 FD 和内存使用情况之间存在很强的时间相关性。
我安装了一些 CIFS 共享,我的用户有它的 gvfsd-fuse。根 FS 是 ext4。
lsof
遍历 /proc/的结果只列出了 /proc/sys/fs/file-nr 的 10% 左右。
我怀疑 MTP 是原因(当我插入我的摩托罗拉手机时),但最近发生了这种情况,自上次重启以来没有使用过 MTP。
旁注:我有用于视频的 radeon 驱动程序:
ii …
Run Code Online (Sandbox Code Playgroud) 我用过lsof | grep home/$USER
,发现gmain进程喜欢打开我的个人文件。这个过程有什么作用,是否有任何可用的文档在 Ubuntu 的上下文中解释它?
已经使用的lsof
,如建议打开的文件太多-如何找到罪魁祸首,我发现成千上万的文件是操作系统风格的节目,如因开放unity-2d-
,gnome-do
和nautilus
。前 50 名中只有一个是应用程序风格的程序 (firefox)。
lsof | perl -lane '$x{"$F[0]:$F[1]"}++;
END { print "$x{$_}\t$_" for sort {$x{$a}<=>$x{$b}} keys %x}' | tail -50
lsof: WARNING: can't stat() fuse.gvfs-fuse-daemon file system /var/lib/lightdm/.gvfs
Output information may be incomplete.
216 unity-2d-:26285
216 unity-2d-:31600
216 unity-2d-:2577
239 nautilus:30626
239 nautilus:3777
239 nautilus:31250
239 nautilus:30781
239 nautilus:15101
241 nautilus:26123
241 nautilus:20495
241 nautilus:9627
241 nautilus:31612
241 nautilus:26298
243 nautilus:7672
243 nautilus:603
243 nautilus:21594
243 nautilus:2590
243 nautilus:17574 …
Run Code Online (Sandbox Code Playgroud) 该文件被一个进程锁定,在我的例子中是 java。我只想释放锁。
lsof | grep /home/user/workspace1
Run Code Online (Sandbox Code Playgroud)
临时解决方案是从“系统监视器”中“结束进程”。
但是终止 java(Java 虚拟机)会终止所有其他使用 java 的程序。那么我该如何释放任何进程持有的锁。出于同样的目的,Windows 有一个名为“Unlocker”的应用程序。
我在台式机上使用 Ubuntu 17.10,我一直在使用 Etherape 监控网络流量。我注意到从我的 PC(casa 主机名)到 googleusercontent.com (104.198.143.177) 的 HTTP 请求。
所以我使用lsof
并ss
“识别”这些请求背后的过程。
使用lsof -i
:
NetworkMa 778 root 20u IPv4 546772 0t0 TCP casa:53671->177.143.198.104.bc.googleusercontent.com:http (SYN_SENT)
NetworkMa 778 root 20u IPv4 546772 0t0 TCP casa:53671->177.143.198.104.bc.googleusercontent.com:http (ESTABLISHED)
Run Code Online (Sandbox Code Playgroud)
使用ss -rep dst 104.198.143.177
:
tcp SYN-SENT 0 1 casa%enp4s0:53671 177.143.198.104.bc.googleusercontent.com:http users:(("NetworkManager",pid=778,fd=20)) timer:(on,964ms,0) ino:546772 sk:6df <->
tcp ESTAB 0 87 casa%enp4s0:53671 177.143.198.104.bc.googleusercontent.com:http users:(("NetworkManager",pid=778,fd=20)) timer:(on,300ms,0) ino:546772 sk:6df <->
Run Code Online (Sandbox Code Playgroud)
似乎 NetworkManager (pid 778) 正在向 googleusercontent 发送请求,并且每 5 分钟发生 …
我所在的实验室拥有共享的科学计算环境。我的系统管理员刚刚告诉实验室中的每个人,我正在使用的节点之一即将崩溃,因为/tmp
已满。我一直试图了解我是如何使用的,/tmp
但很困惑。我注意到运行lsof +D /tmp
显示了许多打开的文件,根据输出的 NAME 列中的条目,这些文件似乎不在或其/tmp
任何子目录中(并且未在 的输出中列出ls /tmp
),但仍被包含在内在命令输出中。例如,这是输出的一部分:
(base) lsof -u cigoe +d /tmp 2>/dev/null \nCOMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME \nbash 81648 cigoe cwd DIR 253,2 4096 34238020 /home/scratch/cigoe/2022/proposal \nbash 81648 cigoe rtd DIR 253,0 4096 128 / bash 81648 cigoe txt REG 253,0 1150648 3646 /usr/bin/bash \nbash 81648 cigoe mem REG 253,0 2586930 3602 /usr/lib/locale/en_US.utf8/LC_COLLATE \nbash 81648 cigoe mem REG 253,0 9253600 201909537 /var/lib/sss/mc/passwd \nbash …
Run Code Online (Sandbox Code Playgroud)