如何同时查看所有进程的输出?

如何同时查看所有进程的输出?

我知道您可以连接到各种后台进程来观看它们的控制台输出,但是有没有办法立即查看所有进程的输出?它可能会快速滚动并且难以阅读,但这可能吗?

答案1

好吧,您可以在后台在 shell 中生成多个进程,然后(如果它们都使用其 stdout 或 stderr)您可以得到地段控制台中混合的信息 - 我所说的混合是指它甚至可能混合来自一行中间的多个进程的数据。

您可能正在寻找的是记录到文件(系统服务通常使用 中的某些内容/var/log),然后查看文件。有几个实用程序可以实现此目的:(tail重要选项-F,它监视文件并打印添加的任何行),less可以(在跟随模式下)交互式地执行相同的操作(即,您可以在跟随文件和向后滚动之间来回切换) 。most是另一个有趣的文件分页实用程序,more是几乎随处可见的“经典”实用程序(甚至在 DOS 和 Windows 上)。

最后但并非最不重要的一点是,tee可能会令人感兴趣 - 它将其标准输入复制到标准输出到一个文件,这通常会派上用场。

答案2

如果它们都写入日志文件,您可以使用 multitail 同时跟踪它们。

答案3

所有流程?大多数后台进程实际上有意关闭其文件描述符,并且没有简单的方法可以收回它们或强制进程识别新的文件描述符。

正如其他人所说,您可以观看 syslog 的所有消息,并且许多用户生成的进程实际上确实将其输出定向到某个地方(至少,如果您运行的是正常的 X 启动环境),因此您可以观看如果你知道要查看哪些文件的话,就会有很多。但在大多数情况下,您无法看到所有非用户进程的输出,因为它们根本没有定义用于发送输出的任何地方。

相关内容