如何停止subprocess.run()方法创建的进程

时间:2018-01-11 08:56:55

标签: python subprocess

这是我的代码,我在stdout内容包含'error'或'completed'之后手动停止子进程。如何停止subprocess.run()方法创建的进程。

软件LATO是由其他人创建的,它永远不会退出。

我看到了使用os.kill来杀死子进程的答案,但由于我使用了pydoc推荐的run,因此我无法获得子进程pid。

BTW,为什么子进程模块没有关于管理子进程的方法...
有什么样的人可以告诉我吗?

def lato_convert(filename):
    ''' Use lato convert bin data to csv data. '''
    try:
        subprocess.run([LATO,
                        '-sourceDirectory={}'.format(UPD_DIRECTORY),
                        '-outputDirectory={}'.format(DATA_DIRECTORY),
                        '-logFile={}'.format(LOG_DIRECTORY +'lato.log')]
                       ,check=True).check_returncode()
    except Exception as e:
        mylogger.get_my_logger(os.path.basename(__file__), LOG_FILENAME).error('lato convert error: {}'.format(e))

0 个答案:

没有答案