考虑以下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操作来介绍此过程。
然而,这可以通过程序本身来实现吗?
(旁注:问题的核心是用户输入的纠缠与解雇“昂贵的计算”。因此,我无法在两个脚本中分离两个脚本,并让另一个脚本生成另一个脚本。)
答案 0 :(得分:0)
命令screen
可能对您有帮助。
使用screen -L
创建新会话并运行您的应用程序。输入一些数据后,您可以按" Ctrl-A "然后按" D "在键盘上分离会话。
现在,您的应用程序正在后台运行。
如果您想要做其他事情或输入更多数据,可以使用命令screen -r
重新连接到上一个会话。
screen
就像一个虚拟屏幕,因此您可以根据需要将程序切换到后台或前台。