Python中文
首页
教程
问答
标签
搜索
登录
注册
将进程写入其stdin后的后台处理
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我使用的是linux/cpython3.3/bash。我的问题是:</p> <pre><code>#!/usr/bin/env python3 from subprocess import Popen, PIPE, DEVNULL import time s = Popen('cat', stdin=PIPE, stdout=DEVNULL, stderr=DEVNULL) s.stdin.write(b'helloworld') s.stdin.close() time.sleep(1000) #doing stuff </code></pre> <p>这使得<code>cat</code>成为一个僵尸(我正忙于“做事情”,无法<code>wait</code>处理子进程)。在bash中有没有一种方法可以包装<code>cat</code>(例如,通过创建一个孙子),允许我写入<code>cat</code>的stdin,但让init接管作为父级?python解决方案也可以,我还可以使用nohup、disown等</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>一种解决方法可能是“守护”您的cat:fork,然后再次快速fork并在第二个进程中退出,第一个进程等待第二个进程。第三个进程可以exec()<code>cat</code>,它将从其父进程继承其文件描述符。因此,您需要先创建一个管道,然后在子对象中关闭stdin并从管道中复制它。你知道吗</p> <p>我不知道如何在python中做这些事情,但我相当肯定这应该是可能的。你知道吗</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
jupyter运行一个旧的pytorch版本
5 回答
Jupyter运行不同版本的卸载库?
3 回答
Jupyter运行指定的键盘快捷键
7 回答
Jupyter通过.local文件“逃逸”virtualenv。我该如何缓解这种情况?
1 回答
Jupyter重新加载自定义样式
7 回答
Jupyter错误:“没有名为Jupyter_core.paths的模块”
8 回答
jupyter错误:无法在随机林中将决策树视为png
6 回答
Jupyter错误'内核似乎已经死亡,它将自动重新启动'为一个给定的代码块
4 回答
Jupyter错误地用阿拉伯语和字母数字元素显示Python列表
5 回答
Jupyter隐藏数据帧索引,但保留原始样式
6 回答
Jupyter集线器:启动器中出现致命错误。。。系统找不到指定的文件
1 回答
Jupyther中相同值的相同哈希,但导出到Bigquery时不相同
4 回答
Jupy上Python的读/写访问问题
9 回答
jupy上没有模块cv
10 回答
Jupy上的排序错误
8 回答
Jupy中bqplot图形的紧凑布局
10 回答
Jupy中matplotlib plot的连续更新
4 回答
Jupy中Numpy函数的文档
7 回答
Jupy中Pandas的自动完成问题
4 回答
jupy中Qt后端的Matplotlib动画
5 回答