受到推崇的, 2024

编辑的选择

了解哪些应用程序或进程与mac os x中的文件进行交互

Macworld San Francisco 2000-The Mac OS X Introduction (Pt.1)

Macworld San Francisco 2000-The Mac OS X Introduction (Pt.1)
Anonim

使用lsof命令,我们可以确切地知道在给定时刻使用指定文件的进程或应用程序。 这与opensnoop命令类似,但不是随着时间的推移观察文件的变化,lsof可以为我们提供此刻的快照,这有助于排除故障。

lsof /path/to/filename

例如,要查看与/var/log/system.log交互的内容,我们将其指向该文件:

$ lsof /var/log/system.log
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
Console 84281 Will 8r REG 14, 2 140239 71929128 /private/var/log/system.log

在这种情况下,使用system.log的应用程序是“控制台”。 同样,这是在执行lsof命令时向我们显示快照,但是通过使用前面提到的opensnoop命令,您可以跟踪哪些进程实时使用该文件:

sudo opensnoop -f /var/log/system.log

以上将导致看到这样的事情:
$ sudo opensnoop -f /var/log/system.log
Password:
UID PID COMM FD PATH
501 84358 cat 3 /var/log/system.log
501 45411 console 3 /var/log/system.log
0 15 syslogd 16 /var/log/system.log

在这种情况下,您在“COMM”下查找进程名称,或者查看进程ID的PID。

请记住,您也可以使用与opensnoop相反的方式,并通过将命令指向应用程序或进程而不是文件来显示应用程序正在使用的所有文件。

Top