python - 如何附加到正在运行的 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')
解决方案
将我的评论变成答案:您必须为此使用命名管道。
我在您的相关问题中回答了如何做到这一点。
推荐阅读
- spring - Spring Data Jpa Repository 可以用来创建复杂的查询吗?
- node.js - 如何更新 Node.js + Nginx 站点
- python - 使用文字字符串插值或 f 字符串时的 SyntaxError
- android - 如何将数据返回到被 Android 破坏的 Activity
- django - 使用 s3Boto 进行服务器端加密 - 使用 KMS 托管密钥进行服务器端加密需要 HTTP 标头 x-amz-server-side-encryption : aws:kms
- amazon-web-services - 如何在不为后端创建入口的情况下使前端应用程序与后端应用程序通信
- google-app-engine - 使用 GAE Python 第二代在本地运行
- java - 泛型和通配符
- c# - 脚本仅适用于场景中的一个对象
- c - C中负数的环礁值