EjecutarUtil

public class RunUtil
extends Object implements IRunUtil

java.lang.Objeto
com.android.tradefed.util.RunUtil


Una colección de métodos auxiliares para ejecutar operaciones.

Resumen

Campos

public static final String INHERITIO_PREFIX

public static final String RUNNABLE_NOTIFIER_NAME

Constructores públicos

RunUtil ()

Cree un nuevo objeto RunUtil para usar.

Métodos públicos

void allowInterrupt (boolean allow)

Permite/no permite ejecutar interrupciones en el subproceso actual.

static IRunUtil getDefault ()

Obtenga una referencia al objeto RunUtil predeterminado.

void interrupt (Thread thread, String message, ErrorIdentifier errorId)

Interrumpe las operaciones de ejecución en curso/próximas en el subproceso dado.

void interrupt (Thread thread, String message)

Interrumpe las operaciones de ejecución en curso/próximas en el subproceso dado.

boolean isInterruptAllowed ()

Proporcione el estado de interrupción de RunUtil.

Process runCmdInBackground (Redirect redirect, command) runCmdInBackground (Redirect redirect, command)

Un método alternativo runCmdInBackground(String) que acepta los argumentos del comando en formato ERROR(/List) .

Process runCmdInBackground ( command) runCmdInBackground ( command)

Un método alternativo runCmdInBackground(String) que acepta los argumentos del comando en formato ERROR(/List) .

Process runCmdInBackground ( command, OutputStream output) runCmdInBackground ( command, OutputStream output)

Ejecutar el comando con un ERROR(/OutputStream) registra la salida del comando.

Process runCmdInBackground (String... command)

Método auxiliar para ejecutar un comando del sistema de forma asíncrona.

Process runCmdInBackground (Redirect redirect, String... command)

Método auxiliar para ejecutar un comando del sistema de forma asíncrona.

boolean runEscalatingTimedRetry (long opTimeout, long initialPollInterval, long maxPollInterval, long maxTime, IRunUtil.IRunnableResult runnable)

Bloquea y ejecuta una operación varias veces hasta que tiene éxito.

boolean runFixedTimedRetry (long opTimeout, long pollInterval, long maxTime, IRunUtil.IRunnableResult runnable)

Bloquea y ejecuta una operación varias veces hasta que tiene éxito.

CommandStatus runTimed (long timeout, IRunUtil.IRunnableResult runnable, boolean logErrors)

Bloquea y ejecuta una operación, abortando si tarda más de un tiempo especificado.

CommandResult runTimedCmd (long timeout, OutputStream stdout, OutputStream stderr, String... command)

Método auxiliar para ejecutar un comando del sistema, abortar si lleva más tiempo que el especificado y redirigir la salida a los archivos si se especifica.

CommandResult runTimedCmd (long timeout, String... command)

Método auxiliar para ejecutar un comando del sistema y abortar si lleva más tiempo que el especificado.

CommandResult runTimedCmdRetry (long timeout, long retryInterval, int attempts, String... command)

Método auxiliar para ejecutar un comando del sistema y abortar si lleva más tiempo que el especificado.

CommandResult runTimedCmdSilently (long timeout, String... command)

Método auxiliar para ejecutar un comando del sistema y abortar si lleva más tiempo que el especificado.

CommandResult runTimedCmdSilentlyRetry (long timeout, long retryInterval, int attempts, String... command)

Método auxiliar para ejecutar un comando del sistema y abortar si lleva más tiempo que el especificado.

CommandResult runTimedCmdWithInput (long timeout, String input, File stdoutFile, File stderrFile, String... command)

Método auxiliar para ejecutar un comando del sistema, abortar si lleva más tiempo que el especificado y redirigir la salida a los archivos si se especifica.

CommandResult runTimedCmdWithInput (long timeout, String input, String... command)

Método auxiliar para ejecutar un comando del sistema que requiere entrada de entrada estándar y anular si lleva más tiempo que el especificado.

CommandResult runTimedCmdWithInput (long timeout, String input, command) runTimedCmdWithInput (long timeout, String input, command)

Método auxiliar para ejecutar un comando del sistema que requiere entrada de entrada estándar y anular si lleva más tiempo que el especificado.

CommandResult runTimedCmdWithInputRedirect (long timeout, File inputRedirect, String... command)

Método auxiliar para ejecutar un comando del sistema que requiere la redirección de Stdin desde un archivo y la cancelación si lleva más tiempo que el especificado.

boolean runTimedRetry (long opTimeout, long pollInterval, int attempts, IRunUtil.IRunnableResult runnable)

Bloquea y ejecuta una operación varias veces hasta que tiene éxito.

void setEnvVariable (String name, String value)

Establece una variable de entorno que se utilizará al ejecutar comandos del sistema.

void setEnvVariablePriority ( IRunUtil.EnvPriority priority)

Decida si, al crear un proceso, desactivar la variable de entorno es más prioritario que configurarla.

void setInterruptibleInFuture (Thread thread, long timeMs)

Establecer como interrumpible después de un tiempo de espera.

void setLinuxInterruptProcess (boolean interrupt)

Permitir el uso de la interrupción 'kill' de Linux en el proceso que se ejecuta a través de los métodos #runTimed cuando alcanza un tiempo de espera.

void setRedirectStderrToStdout (boolean redirect)

Configure el flujo de error estándar para redirigir al flujo de salida estándar al ejecutar comandos del sistema.

void setWorkingDir (File dir)

Establece el directorio de trabajo para los comandos del sistema.

void sleep (long time)

Método auxiliar para dormir durante un tiempo determinado, ignorando cualquier excepción.

void unsetEnvVariable (String key)

Desarma una variable de entorno, por lo que los comandos del sistema se ejecutan sin esta variable de entorno. Las variables de entorno pueden heredar del proceso principal, por lo que debemos eliminar la variable de entorno de ProcessBuilder.environment()

Campos

HERENCIA_PREFIX

public static final String INHERITIO_PREFIX

RUNNABLE_NOTIFIER_NOMBRE

public static final String RUNNABLE_NOTIFIER_NAME

Constructores públicos

EjecutarUtil

public RunUtil ()

Cree un nuevo objeto RunUtil para usar.

Métodos públicos

permitir la interrupción

public void allowInterrupt (boolean allow)

Permite/no permite ejecutar interrupciones en el subproceso actual. Si está permitido, las operaciones de ejecución del subproceso actual se pueden interrumpir desde otros subprocesos a través del método interrupt(Thread, String) .

Parámetros
allow boolean : si permitir interrupciones de ejecución en el subproceso actual.

getDefault

public static IRunUtil getDefault ()

Obtenga una referencia al objeto RunUtil predeterminado.

Esto es útil para las personas que llaman y desean usar IRunUtil sin personalización. Se recomienda que las personas que llaman que necesitan una instancia personalizada de IRunUtil (es decir, necesitan llamar a setEnvVariable(String, String) o setWorkingDir(File) para crear su propia copia.

Devoluciones
IRunUtil

interrumpir

public void interrupt (Thread thread, 
                String message, 
                ErrorIdentifier errorId)

Interrumpe las operaciones de ejecución en curso/próximas en el subproceso dado. Las operaciones de ejecución en el subproceso dado generarán RunInterruptedException .

Parámetros
message String : el mensaje para RunInterruptedException .

errorId ErrorIdentifier : representa la causa de la interrupción cuando se conoce.

interrumpir

public void interrupt (Thread thread, 
                String message)

Interrumpe las operaciones de ejecución en curso/próximas en el subproceso dado. Las operaciones de ejecución en el subproceso dado generarán RunInterruptedException .

Parámetros
message String : el mensaje para RunInterruptedException .

está permitida la interrupción

public boolean isInterruptAllowed ()

Proporcione el estado de interrupción de RunUtil.

Devoluciones
boolean true si la ejecución puede interrumpirse, false en caso contrario.

ejecutarCmdInBackground

public Process runCmdInBackground (Redirect redirect, 
                 command)

Un método alternativo runCmdInBackground(String) que acepta los argumentos del comando en formato ERROR(/List) .

Parámetros
redirect Redirect : el ERROR(/Redirect) para aplicar a ProcessBuilder .

command : el ERROR(/List) que contiene el comando del sistema especificado y, opcionalmente, argumentos para exec

Devoluciones
Process el Process del comando ejecutado

ejecutarCmdInBackground

public Process runCmdInBackground ( command)

Un método alternativo runCmdInBackground(String) que acepta los argumentos del comando en formato ERROR(/List) .

Parámetros
command : el ERROR(/List) que contiene el comando del sistema especificado y, opcionalmente, argumentos para exec

Devoluciones
Process el Process del comando ejecutado

ejecutarCmdInBackground

public Process runCmdInBackground ( command, 
                OutputStream output)

Ejecutar el comando con un ERROR(/OutputStream) registra la salida del comando. Stdout y stderr se fusionan.

Parámetros
command : el comando para ejecutar

output OutputStream : el OutputStream para guardar la salida

Devoluciones
Process el Process que ejecuta el comando

ejecutarCmdInBackground

public Process runCmdInBackground (String... command)

Método auxiliar para ejecutar un comando del sistema de forma asíncrona.

Regresará inmediatamente después de lanzar el comando.

Parámetros
command String : el comando del sistema especificado y, opcionalmente, argumentos para exec

Devoluciones
Process el Process del comando ejecutado

ejecutarCmdInBackground

public Process runCmdInBackground (Redirect redirect, 
                String... command)

Método auxiliar para ejecutar un comando del sistema de forma asíncrona.

Regresará inmediatamente después de lanzar el comando.

Parámetros
redirect Redirect : el ERROR(/Redirect) para aplicar a ProcessBuilder .

command String : el comando del sistema especificado y, opcionalmente, argumentos para exec

Devoluciones
Process el Process del comando ejecutado

runEscalatingTimedRetry

public boolean runEscalatingTimedRetry (long opTimeout, 
                long initialPollInterval, 
                long maxPollInterval, 
                long maxTime, 
                IRunUtil.IRunnableResult runnable)

Bloquea y ejecuta una operación varias veces hasta que tiene éxito.

Aumente exponencialmente el tiempo de espera entre intentos de operación. Esto está diseñado para usarse cuando se realiza una operación como sondear un servidor, para darle tiempo de recuperarse en caso de que esté temporalmente inactivo.

Parámetros
opTimeout long : tiempo máximo de espera en ms para un solo intento de operación

initialPollInterval long : tiempo inicial de espera entre intentos de operación

maxPollInterval long : el tiempo máximo de espera entre intentos de operación

maxTime long : el tiempo máximo total aproximado para seguir intentando la operación

runnable IRunUtil.IRunnableResult : IRunUtil.IRunnableResult para ejecutar

Devoluciones
boolean true si la operación se completó con éxito antes de que caducara maxTime

ejecutarFixedTimedRetry

public boolean runFixedTimedRetry (long opTimeout, 
                long pollInterval, 
                long maxTime, 
                IRunUtil.IRunnableResult runnable)

Bloquea y ejecuta una operación varias veces hasta que tiene éxito.

Parámetros
opTimeout long : tiempo máximo de espera en ms para un solo intento de operación

pollInterval long : tiempo inicial de espera entre intentos de operación

maxTime long : el tiempo máximo total aproximado para seguir intentando la operación

runnable IRunUtil.IRunnableResult : IRunUtil.IRunnableResult para ejecutar

Devoluciones
boolean true si la operación se completó con éxito antes de que caducara maxTime

runTimed

public CommandStatus runTimed (long timeout, 
                IRunUtil.IRunnableResult runnable, 
                boolean logErrors)

Bloquea y ejecuta una operación, abortando si tarda más de un tiempo especificado.

Parámetros
timeout long : tiempo máximo de espera en ms

runnable IRunUtil.IRunnableResult : IRunUtil.IRunnableResult para ejecutar

logErrors boolean : errores de registro en caso de excepción o no.

Devoluciones
CommandStatus el resultado CommandStatus de la operación.

ejecutarTimedCmd

public CommandResult runTimedCmd (long timeout, 
                OutputStream stdout, 
                OutputStream stderr, 
                String... command)

Método auxiliar para ejecutar un comando del sistema, abortar si lleva más tiempo que el especificado y redirigir la salida a los archivos si se especifica. Cuando se proporcionan ERROR(/OutputStream) de esta manera, se dejarán abiertos al final de la función.

Parámetros
timeout long : timeout tiempo máximo de espera en ms. 0 significa que no hay tiempo de espera.

stdout OutputStream : ERROR(/OutputStream) donde se redirigirá la salida estándar. Puede ser nulo.

stderr OutputStream : ERROR(/OutputStream) donde se redirigirá la salida de error. Puede ser nulo.

command String : el comando del sistema especificado y, opcionalmente, argumentos para exec

Devoluciones
CommandResult un CommandResult que contiene el resultado de la ejecución del comando

ejecutarTimedCmd

public CommandResult runTimedCmd (long timeout, 
                String... command)

Método auxiliar para ejecutar un comando del sistema y abortar si lleva más tiempo que el especificado.

Parámetros
timeout long : tiempo máximo de espera en ms. 0 significa que no hay tiempo de espera.

command String : el comando del sistema especificado y, opcionalmente, argumentos para exec

Devoluciones
CommandResult un CommandResult que contiene el resultado de la ejecución del comando

ejecutarTimedCmdReintentar

public CommandResult runTimedCmdRetry (long timeout, 
                long retryInterval, 
                int attempts, 
                String... command)

Método auxiliar para ejecutar un comando del sistema y abortar si lleva más tiempo que el especificado.

Parámetros
timeout long : tiempo máximo de espera en ms por cada intento

retryInterval long : tiempo de espera entre reintentos de comando

attempts int : el número máximo de intentos para probar

command String : el comando del sistema especificado y, opcionalmente, argumentos para exec

Devoluciones
CommandResult un CommandResult que contiene el resultado de la ejecución del comando

runTimedCmdSilently

public CommandResult runTimedCmdSilently (long timeout, 
                String... command)

Método auxiliar para ejecutar un comando del sistema y abortar si lleva más tiempo que el especificado. Similar a runTimedCmd(long, String) , pero no registra ningún error por excepción.

Parámetros
timeout long : tiempo máximo de espera en ms

command String : el comando del sistema especificado y, opcionalmente, argumentos para exec

Devoluciones
CommandResult un CommandResult que contiene el resultado de la ejecución del comando

runTimedCmdSilentlyRetry

public CommandResult runTimedCmdSilentlyRetry (long timeout, 
                long retryInterval, 
                int attempts, 
                String... command)

Método auxiliar para ejecutar un comando del sistema y abortar si lleva más tiempo que el especificado. Similar a runTimedCmdRetry(long, long, int, String[]) , pero no registra ningún error por excepción.

Parámetros
timeout long : tiempo máximo de espera en ms

retryInterval long : tiempo de espera entre reintentos de comando

attempts int : el número máximo de intentos para probar

command String : el comando del sistema especificado y, opcionalmente, argumentos para exec

Devoluciones
CommandResult un CommandResult que contiene el resultado de la ejecución del comando

runTimedCmdWithInput

public CommandResult runTimedCmdWithInput (long timeout, 
                String input, 
                File stdoutFile, 
                File stderrFile, 
                String... command)

Método auxiliar para ejecutar un comando del sistema, abortar si lleva más tiempo que el especificado y redirigir la salida a los archivos si se especifica.

Parámetros
timeout long : timeout tiempo máximo de espera en ms. 0 significa que no hay tiempo de espera.

input String : la entrada estándar para pasar al proceso

stdoutFile File : ERROR(/File) donde se redirigirá la salida estándar. Puede ser nulo.

stderrFile File : ERROR(/File) donde se redirigirá la salida de error. Puede ser nulo.

command String : el comando del sistema especificado y, opcionalmente, argumentos para exec

Devoluciones
CommandResult un CommandResult que contiene el resultado de la ejecución del comando

runTimedCmdWithInput

public CommandResult runTimedCmdWithInput (long timeout, 
                String input, 
                String... command)

Método auxiliar para ejecutar un comando del sistema que requiere entrada de entrada estándar y anular si lleva más tiempo que el especificado.

Parámetros
timeout long : tiempo máximo de espera en ms

input String : la entrada estándar para pasar al proceso

command String : el comando del sistema especificado y, opcionalmente, argumentos para exec

Devoluciones
CommandResult un CommandResult que contiene el resultado de la ejecución del comando

runTimedCmdWithInput

public CommandResult runTimedCmdWithInput (long timeout, 
                String input, 
                 command)

Método auxiliar para ejecutar un comando del sistema que requiere entrada de entrada estándar y anular si lleva más tiempo que el especificado.

Parámetros
timeout long : tiempo máximo de espera en ms

input String : la entrada estándar para pasar al proceso

command : ERROR(/List) que contiene el comando del sistema y, opcionalmente, argumentos para exec

Devoluciones
CommandResult un CommandResult que contiene el resultado de la ejecución del comando

runTimedCmdWithInputRedirect

public CommandResult runTimedCmdWithInputRedirect (long timeout, 
                File inputRedirect, 
                String... command)

Método auxiliar para ejecutar un comando del sistema que requiere la redirección de Stdin desde un archivo y la cancelación si lleva más tiempo que el especificado.

Parámetros
timeout long : tiempo máximo de espera en ms

inputRedirect File : el ERROR(/File) para redirigir como entrada estándar usando ProcessBuilder.redirectInput() . Si es nulo, la entrada estándar no se redirigirá.

command String : el comando del sistema especificado y, opcionalmente, argumentos para exec

Devoluciones
CommandResult un CommandResult que contiene el resultado de la ejecución del comando

runTimedRetry

public boolean runTimedRetry (long opTimeout, 
                long pollInterval, 
                int attempts, 
                IRunUtil.IRunnableResult runnable)

Bloquea y ejecuta una operación varias veces hasta que tiene éxito.

Parámetros
opTimeout long : tiempo máximo de espera en ms para un intento de operación

pollInterval long : tiempo de espera entre reintentos de comando

attempts int : el número máximo de intentos para probar

runnable IRunUtil.IRunnableResult : IRunUtil.IRunnableResult para ejecutar

Devoluciones
boolean true si la operación se completó correctamente antes de que se alcanzaran los intentos.

establecerEnvVariable

public void setEnvVariable (String name, 
                String value)

Establece una variable de entorno que se utilizará al ejecutar comandos del sistema.

Parámetros
name String : el nombre de la variable

value String : el valor de la variable

establecerEnvVariablePriority

public void setEnvVariablePriority (IRunUtil.EnvPriority priority)

Decida si, al crear un proceso, desactivar la variable de entorno es más prioritario que configurarla. De forma predeterminada, el desarmado tiene mayor prioridad: lo que significa que si se intenta establecer una variable con el mismo nombre, no sucederá ya que la variable se desarmará. No se puede usar en la instancia predeterminada IRunUtil .

Parámetros
priority IRunUtil.EnvPriority

establecerInterruptibleInFuture

public void setInterruptibleInFuture (Thread thread, 
                long timeMs)

Establecer como interrumpible después de un tiempo de espera. ERROR(/CommandScheduler#shutdownHard()) para hacer cumplir que terminamos eventualmente.

Parámetros
thread Thread : el hilo que se volverá interrumpible.

timeMs long : tiempo de espera antes de establecer interrumpible.

setLinuxInterruptProcess

public void setLinuxInterruptProcess (boolean interrupt)

Permitir el uso de la interrupción 'kill' de Linux en el proceso que se ejecuta a través de los métodos #runTimed cuando alcanza un tiempo de espera. No se puede usar en la instancia predeterminada IRunUtil .

Parámetros
interrupt boolean

setRedirectStderrToStdout

public void setRedirectStderrToStdout (boolean redirect)

Configure el flujo de error estándar para redirigir al flujo de salida estándar al ejecutar comandos del sistema. El valor inicial es falso.

Parámetros
redirect boolean : nuevo valor para si redirigir o no

establecerDirDeTrabajo

public void setWorkingDir (File dir)

Establece el directorio de trabajo para los comandos del sistema.

Parámetros
dir File : el directorio de trabajo

dormir

public void sleep (long time)

Método auxiliar para dormir durante un tiempo determinado, ignorando cualquier excepción.

Parámetros
time long : ms para dormir. los valores menores o iguales a 0 serán ignorados

unsetEnvVariable

public void unsetEnvVariable (String key)

Desarma una variable de entorno, por lo que los comandos del sistema se ejecutan sin esta variable de entorno. Las variables de entorno pueden heredar del proceso principal, por lo que debemos eliminar la variable de entorno de ProcessBuilder.environment()

Parámetros
key String : el nombre de la variable