跟踪子进程的错误和失败

2024-09-27 20:17:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我通过一个Unix可执行文件来维护Perforce服务器,每当终端出现问题时,它就会记录终端中的错误。我想做的是使用Python来启动可执行文件,然后让它监视正在执行的应用程序在终端窗口中记录的任何错误。你知道吗

下面的代码适用于执行,但我不知道如何在子进程通过某种形式的回调记录到终端时从中获取数据。你知道吗

import subprocess
subprocess.call(["./p4d"])

Tags: 代码import服务器应用程序终端可执行文件进程错误
2条回答

我通常是这样做的

from subprocess import Popen, PIPE
proc = Popen(["./p4d"], stdout=PIPE, stderr=PIPE)
out, err = pipe.communicate()

你知道吗管道.通讯()将挂起,直到进程完成,然后返回stdout和stderr

process.stdoutprocess.stdout是可以从中读取的类似文件的对象。假设事情被记录到stdout:

proc = Popen(['./p4d'], stdout=PIPE, encoding='utf-8')  # Or whatever encoding suits
for line in proc.stdout:
    # Note that line will end in `\n`, unless it is the last line.
    line = line.rstrip('\n')

    # Do something depending on the line

相关问题 更多 >

    热门问题