擅长:python、mysql、java
<p>删除<code>shell=True</code>后,它开始工作。并重新构造了没有线程的代码。如果我添加<code>shell=True</code>,那么它在<code>communicate</code>调用中再次开始阻塞。在</p>
<pre><code>proc = subprocess.Popen(["./cmd.py"], stdout=subprocess.PIPE)
#Do something else
sleep(2)
os.system('kill -15 ' + str(proc.pid))
print 'Killed ' + str(proc.pid)
print 'cmd out: ' + proc.communicate()[0]
print 'finished'
</code></pre>