相关疑难解决方法(0)

使用模块'subprocess'和超时

这是运行任意命令返回其stdout数据的Python代码,或者在非零退出代码上引发异常:

proc = subprocess.Popen(
    cmd,
    stderr=subprocess.STDOUT,  # Merge stdout and stderr
    stdout=subprocess.PIPE,
    shell=True)
Run Code Online (Sandbox Code Playgroud)

communicate 用于等待进程退出:

stdoutdata, stderrdata = proc.communicate()
Run Code Online (Sandbox Code Playgroud)

该subprocess模块不支持超时 - 能够终止运行超过X秒的进程 - 因此,communicate可能需要永久运行.

在旨在在Windows和Linux上运行的Python程序中实现超时的最简单方法是什么?

python multithreading subprocess timeout

303
推荐指数
15
解决办法
26万
查看次数

停止在Python中读取进程输出而不挂起?

我有一个Linux的Python程序几乎看起来像这样:

import os
import time

process = os.popen("top").readlines()

time.sleep(1)

os.popen("killall top")

print process
Run Code Online (Sandbox Code Playgroud)

该程序挂起在这一行:

process = os.popen("top").readlines()
Run Code Online (Sandbox Code Playgroud)

这种情况发生在保持更新输出的工具中,如"Top"

我最好的考验:

import os
import time
import subprocess

process = subprocess.Popen('top')

time.sleep(2)

os.popen("killall top")

print process
Run Code Online (Sandbox Code Playgroud)

它比第一个(它被砍掉)效果更好,但它返回:

<subprocess.Popen object at 0x97a50cc>
Run Code Online (Sandbox Code Playgroud)

第二次试验:

import os
import time
import subprocess

process = subprocess.Popen('top').readlines()

time.sleep(2)

os.popen("killall top")

print process
Run Code Online (Sandbox Code Playgroud)

和第一个一样.它由于"readlines()"而被绞死

它的返回应该是这样的:

top - 05:31:15 up 12:12,  5 users,  load average: 0.25, 0.14, 0.11
Tasks: 174 total,   2 running, 172 sleeping,   0 stopped,   0 zombie
Cpu(s):  9.3%us, …
Run Code Online (Sandbox Code Playgroud)

python subprocess hung multiprocessor

14
推荐指数
1
解决办法
8684
查看次数

用python杀死进程

我需要创建一个从用户获取以下内容的脚本:

1)进程名称(在linux上).

2)此进程写入的日志文件名.

它需要终止进程并验证进程是否已关闭.使用时间和日期将日志文件名更改为新文件名.然后再次运行该过程,验证它是否正常,以便它将继续写入日志文件.

在此先感谢您的帮助.

python linux kill process

8
推荐指数
1
解决办法
3万
查看次数

使用 os.system 函数时设置超时

首先,我想说我刚开始学习python,我想在我的python脚本中执行maven命令(见下面的部分代码)

os.system("mvn surefire:test")

但不幸的是,有时这个命令会超时,所以我想知道如何设置一个超时阈值来控制这个命令。

也就是说,如果执行时间超过 X 秒,程序将跳过命令。

更重要的是,其他有用的解决方案可以解决我的问题吗?提前致谢!

timeout os.system python-3.x

5
推荐指数
1
解决办法
9663
查看次数