[英]Python, How to terminate a “shell=True” subprocess after execution
我正在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
如何在执行后杀死进程以执行下一个命令
Popen.wait
等待进程终止,因此一旦返回,将Popen.wait
杀死。
一旦进程退出,您就不应“杀死它”。 您唯一要做的就是收集其返回代码, Popen.wait
会为您执行此操作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.