os.kill返回“ WindowsError:[错误6]句柄无效”

时间:2019-05-17 12:28:41

标签: python

我正在尝试运行一个脚本,该脚本启动一个cmd命令(在本例中为ping),并使用CTRL + C将该脚本停止在中间。

对我来说重要的是它将是CTRL + C而不是残酷的关机,因为某些命令只有在正确终止后才能终止并保存输出文件(例如Tshark)。

import subprocess
import threading as th
import time
import sys
import signal
import os
import psutil

cmd = "ping -n 5 www.google.com"

def act():
    time.sleep(2)
    os.kill(p.pid, signal.CTRL_C_EVENT)

def read_p():
    global p
    p = subprocess.Popen(cmd, shell=True,  stdout=subprocess.PIPE)
    while True:
        out = p.stdout.readline()
        if out == '' and p.poll() != None:
            break
        if out != '':
            print out

thread_one = th.Thread(target=act)
thread_two = th.Thread(target=read_p)
thread_two.start()
thread_one.start()
thread_two.join()
thread_one.join()

在运行过程中,尝试执行os.kill,但返回WindowsError: [Error 6] The handle is invalid

0 个答案:

没有答案