我使用以下命令运行子进程:
p = subprocess.Popen("subprocess",
stdout=subprocess.PIPE,
stderr=subprocess.PIPE,
stdin=subprocess.PIPE)
Run Code Online (Sandbox Code Playgroud)
此子进程可以立即退出stderr上的错误,也可以继续运行.我想检测这些条件中的任何一个 - 后者等待几秒钟.
我试过这个:
SECONDS_TO_WAIT = 10
select.select([],
[p.stdout, p.stderr],
[p.stdout, p.stderr],
SECONDS_TO_WAIT)
Run Code Online (Sandbox Code Playgroud)
但它只是返回:
([],[],[])
Run Code Online (Sandbox Code Playgroud)
无论哪种条件.我能做什么?
我认为这是一个非常基本的问题,但无论如何它都在这里.
我需要编写一个python脚本来检查以确保进程,例如notepad.exe正在运行.如果进程正在运行,则不执行任何操作.如果不是,请启动它.如何做到这一点.
我在Windows XP上使用Python 2.6
我尝试着:
import commands
print commands.getoutput("ps -u 0")
Run Code Online (Sandbox Code Playgroud)
但它不适用于os x.os而不是命令给出相同的输出:USER PID%CPU%MEM VSZ RSS TT STAT STARTED TIME COMMAND
而已