Python程序背景本身怎么样?

时间:2017-09-11 05:33:17

标签: python command-line parallel-processing background-process

考虑以下Python命令行程序。它不起作用,因为它不完整,但我认为它说明了问题:

#!/usr/bin/python3
import multiprocessing

pool = multiprocessing.Pool()
for task in expensive_iterator_with_user_interaction():
    pool.call_async(expensive_computation, (task,))
pool.close()

print("Dear user, you may now press Ctrl-Z and bg this script.")
pool.join()

因此,问题是这个脚本在启动昂贵的并行进程时需要用户输入。但是那时就不再需要用户交互了。然后,我要求用户使用shell操作来介绍此过程。

然而,这可以通过程序本身来实现吗?

(旁注:问题的核心是用户输入的纠缠与解雇“昂贵的计算”。因此,我无法在两个脚本中分离两个脚本,并让另一个脚本生成另一个脚本。)

1 个答案:

答案 0 :(得分:0)

命令screen可能对您有帮助。

使用screen -L创建新会话并运行您的应用程序。输入一些数据后,您可以按" Ctrl-A "然后按" D "在键盘上分离会话。

现在,您的应用程序正在后台运行。

如果您想要做其他事情或输入更多数据,可以使用命令screen -r重新连接到上一个会话。

screen就像一个虚拟屏幕,因此您可以根据需要将程序切换到后台或前台。