0

我在 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

执行后如何终止进程以执行下一个命令

4

1 回答 1

1

Popen.wait等待进程终止,所以一旦它返回就没有什么可以杀死的了。

一旦一个进程退出,你不应该“杀死它”。你唯一应该做的就是收集它的返回码,这Popen.wait对你有用。

于 2013-09-16T10:49:50.900 回答