如何在 OSX 上连续执行 ps auxw?

如何在 OSX 上连续执行 ps auxw?

问题是这样的:如果我打开终端并输入ps auxw,我会看到正在运行的所有进程的列表,但这个命令就像是那个瞬间的快照。我需要的是这个:

我正在尝试找出刚启动后就崩溃的应用程序正在运行什么进程。我将使用查找器并双击应用程序图标来执行它。一瞬间我知道该应用程序将启动然后崩溃。

我如何让终端窗口始终监视正在运行的进程,以便当应用程序启动短暂瞬间时,该监视会捕获该进程并将其列在终端上?

我该怎么做?谢谢。

答案1

如果你有苹果端口您可以使用可用的(或者可能是自制或类似的环境)watch每秒打印命令的输出:

 watch -n 1 ps auxw

另一种方法是使用一瞥,也可以通过 macports 获得。

答案2

你确实可以使用watch这个。替代方案是

  1. tophtop:这些显示过程在不断更新的窗口中进行。

  2. 使用 shell

    while true; do ps auxw; sleep 1; done
    
  3. strace在 Linux 上使用或ktrace在 OSX 上。

答案3

我使用了@terdon 提供的修改后的命令:

while true; do ps auxw >> ps.txt; date >> ps.txt; sleep 1; done

我这样做是为了更容易地跟踪特定时刻运行的进程。

相关内容