我在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
我也尝试过使用
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
执行下一个命令后如何终止进程
答案 0 :(得分:1)
Popen.wait
等待进程终止,因此一旦返回就没有任何东西可以杀死。
一旦进程退出,你就不应该“杀掉它”。你应该做的唯一事情是收集它的返回码,Popen.wait
为你做的。