首页 > 解决方案 > 如何附加到正在运行的 Popen 进程

问题描述

我有一个运行一段时间然后接受输入的 shell 脚本。我想创建流程:

process = subprocess.Popen( 
     '/my/longscript/wait.sh', 
     shell=True, 
     stdout=subprocess.PIPE, 
     stdin=subprocess.PIPE, 
     stderr=subprocess.PIPE, 
     universal_newlines=True 
 )                                                                                                                                                                                   

process                                                                                                                                                                             
<subprocess.Popen at 0x7fb7b319ef60>

process.pid                                                                                                                                                                         
10248

然后在不同的会话中附加到这个进程并向它发送一些标准输入。如何使用 pid 重新附加到进程,或者我该如何执行此操作?

running_process = subprocess.attach_to_my_old_process(pid=10248)???
running_process.communicate(input='someinput')

标签: pythonpopen

解决方案


将我的评论变成答案:您必须为此使用命名管道。

我在您的相关问题中回答了如何做到这一点。


推荐阅读