0

使用 Python,我有 12 个脚本一次在 2 个进程中异步运行。当这两个进程运行时,它们会不断打印有关它们所采取的每个步骤的信息。

我想做的是能够在两个单独的部分中显示我的 bash 窗口。在顶部,我想要一个几乎不会移动或更改的任务列表/已完成列表。例如

Async Process 1: Started.
Async Process 2: Started.
Async Process 2: Finished.

然后在 bash 的底部,我想显示这些进程打印出来的内容。我在 bash 窗口中看到了一堆具有这些功能的应用程序,但找不到任何 python 示例。解决这个问题的最佳方法是什么?谢谢!

4

2 回答 2

1

我推荐curses模块。大多数非平凡的终端应用程序使用 curses 或类似 curses 的库来实现它们的 UI。

于 2013-09-13T20:29:59.430 回答
1

unix 环境有许多允许这种监视的内置功能。

这是一个快速而肮脏的解决方案:

从命令行 bash 提示提交作业,将所有将显示在屏幕上的输出重定向到一个公共文件(以附加模式)。

bash>  python script.py arg1 arg2 >> temp.out
bash>  python script.py arga argb >> temp.out
bash>  python script.py argx argy >> temp.out
..
bash>  python script.py arg1 arg2 >> temp.out

在提交并运行所有作业后,在同一个终端中,您可以使用 bash 命令内置的“作业”监控哪些仍在运行/完成

bash>  jobs

然后打开一个新终端,并使用“tail -f”查看 temp.out 中发生的事情(实时)。所有写入它的进程的输出都会出现乱码,但我猜你仍然能够理解它。

bash>  tail -f temp.out

它不像构建自己的进程监视器那么花哨,但整个过程的设置时间不应超过 1 分钟。

于 2013-09-13T20:52:52.310 回答