是否有 Unix/Linux 等价的过程监控器,是 GUI 还是 CUI?
如果它有影响的话,我正在考虑 Ubuntu,但如果其他系统(Mac、其他 Linux 变体,如 Fedora 等)有等效的系统,那么了解其中任何一个也会很有用。
编辑:
过程监视器用于监视系统调用(例如文件创建或写入),而 Process探险家用于监视进程状态(类似于系统监视器)。我要求的是前者,而不是后者。 :-)
答案1
所有过程监视器的祖父是top
,还有很多系统监控工具被称为top
.例如,有iotop
观察磁盘 I/O,atop
对于一堆系统资源,powertop
用于功耗。
如果您想要更详细的信息,默认情况下不会对其进行跟踪。观看什么特定过程正在做,打电话strace
在上面。例如,如果您只对文件系统访问感兴趣:
strace -s9999 -efile command_name # trace a program during its whole execution
strace -s9999 -efile -p1234 # trace a running program with the given PID
strace
特定于 Linux,但其他系统也有类似的工具:truss
在 Solaris 上ktrace
或dtrace
在 *BSD 下等。
观察发生了什么特定文件或者在特定目录或目录树中,使用inotify 设施。
inotifywait -m .
同样,该功能是 Linux 特有的,但大多数其他 unice 也有类似的系统,例如队列在 *BSD 下,以及FAM(最初来自 SGI,但现在可在许多系统上作为 API 使用)。
来观看所有系统调用在Linux下,你可以使用审计子系统。它是相对较新的,并且没有太多关于该主题的文献;搜索auditctl
或阅读auditctl
手册页。该网站上有几个示例:跟踪文件访问,跟踪流程执行情况。
答案2
备用控制台是top
,但是还有像我最喜欢的那样的替代方案htop
,可以为您提供更多的显示灵活性,并允许您对进程进行更多操作。
更适合在脚本中使用的交互性较差的视图是ps
程序及其所有相关内容。
编辑:根据您澄清的问题,您可能会注意到它strace
处理监视给定进程发出的系统调用,包括所有读写操作和操作系统函数调用。您可以在命令行上在要跟踪的程序之前激活它,或者通过点击s中选择的进程来将其附加到正在运行的进程htop
。
答案3
您可能想看看lsof
和strace
。 Sysinternal 的 Process Monitor 实际上是 Filemon 和 Regmon 的结合,并进行了一些额外的增强。该top
命令更像是 Process Explorer。