Python,如何终止一个;shell=真;执行后的子进程

Python,如何终止一个;shell=真;执行后的子进程,python,subprocess,Python,Subprocess,我正在python脚本中执行以下命令: #! /usr/bin/python import shlex import os import subprocess import string import random import signal pro = subprocess.Popen("zcat production_dump_2013-09-16_12-00.sql.gz | PGPASSWORD=everything psql -d voylla_solr -h localhos

我正在python脚本中执行以下命令:

#! /usr/bin/python

import shlex
import os
import subprocess
import string
import random
import signal



pro = subprocess.Popen("zcat production_dump_2013-09-16_12-00.sql.gz | PGPASSWORD=everything psql -d voylla_solr -h localhost -p 5432 -U nishant", shell=True)
pro.wait()
os.kill(pro.pid, signal.SIGTERM)
这给了我:

OSError: [Errno 3] No such process
OSError: [Errno 3] No such process
我也试过使用

pro = subprocess.Popen("zcat production_dump_2013-09-16_12-00.sql.gz | PGPASSWORD=everything psql -d voylla_solr -h localhost -p 5432 -U nishant", shell=True)
pro.wait()
pro.kill()
这给了我:

OSError: [Errno 3] No such process
OSError: [Errno 3] No such process
如何在执行后终止进程以执行下一个命令

等待进程终止,因此一旦它返回,就没有什么可终止的了

一旦进程退出,就不应该“杀死它”。你要做的唯一一件事就是收集它的返回码,
Popen.wait
会为你做的