RunUtil

public class RunUtil
extends Object implements IRunUtil

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


Eine Sammlung von Hilfsmethoden zum Ausführen von Operationen.

Zusammenfassung

Felder

public static final String INHERITIO_PREFIX

public static final String RUNNABLE_NOTIFIER_NAME

Öffentliche Konstrukteure

RunUtil ()

Erstellen Sie ein neues zu verwendendes RunUtil Objekt.

Öffentliche Methoden

void allowInterrupt (boolean allow)

Erlaubt/verbietet die Ausführung von Interrupts für den aktuellen Thread.

static IRunUtil getDefault ()

Rufen Sie eine Referenz auf das standardmäßige RunUtil Objekt ab.

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

Unterbricht die laufenden/anstehenden Ausführungsvorgänge für den angegebenen Thread.

void interrupt (Thread thread, String message)

Unterbricht die laufenden/anstehenden Ausführungsvorgänge für den angegebenen Thread.

boolean isInterruptAllowed ()

Geben Sie den Interrupt-Status von RunUtil an.

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

Eine alternative runCmdInBackground(String) -Methode, die die Befehlsargumente in ERROR(/List) -Form akzeptiert.

Process runCmdInBackground ( command) runCmdInBackground ( command)

Eine alternative runCmdInBackground(String) -Methode, die die Befehlsargumente in ERROR(/List) -Form akzeptiert.

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

Ausführen des Befehls mit einem ERROR(/OutputStream) protokolliert die Ausgabe des Befehls.

Process runCmdInBackground (String... command)

Hilfsmethode zum asynchronen Ausführen eines Systembefehls.

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

Hilfsmethode zum asynchronen Ausführen eines Systembefehls.

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

Blockiert und führt eine Operation mehrmals aus, bis sie erfolgreich ist.

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

Blockiert und führt eine Operation mehrmals aus, bis sie erfolgreich ist.

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

Blockiert und führt eine Operation aus und bricht ab, wenn sie länger als eine angegebene Zeit dauert.

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

Hilfsmethode zum Ausführen eines Systembefehls, zum Abbrechen, wenn dies länger als eine angegebene Zeit dauert, und zum Umleiten der Ausgabe in Dateien, falls angegeben.

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

Hilfsmethode zum Ausführen eines Systembefehls und zum Abbrechen, wenn es länger als eine angegebene Zeit dauert.

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

Hilfsmethode zum Ausführen eines Systembefehls und zum Abbrechen, wenn es länger als eine angegebene Zeit dauert.

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

Hilfsmethode zum Ausführen eines Systembefehls und zum Abbrechen, wenn es länger als eine angegebene Zeit dauert.

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

Hilfsmethode zum Ausführen eines Systembefehls und zum Abbrechen, wenn es länger als eine angegebene Zeit dauert.

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

Hilfsmethode zum Ausführen eines Systembefehls, zum Abbrechen, wenn dies länger als eine angegebene Zeit dauert, und zum Umleiten der Ausgabe in Dateien, falls angegeben.

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

Hilfsmethode zum Ausführen eines Systembefehls, der eine stdin-Eingabe erfordert, und zum Abbrechen, wenn dies länger als eine angegebene Zeit dauert.

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

Hilfsmethode zum Ausführen eines Systembefehls, der eine stdin-Eingabe erfordert, und zum Abbrechen, wenn dies länger als eine angegebene Zeit dauert.

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

Hilfsmethode zum Ausführen eines Systembefehls, der das Umleiten von Stdin aus einer Datei erfordert, und das Abbrechen, wenn es länger als eine angegebene Zeit dauert.

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

Blockiert und führt eine Operation mehrmals aus, bis sie erfolgreich ist.

void setEnvVariable (String name, String value)

Legt eine Umgebungsvariable fest, die beim Ausführen von Systembefehlen verwendet werden soll.

void setEnvVariablePriority ( IRunUtil.EnvPriority priority)

Entscheiden Sie, ob beim Erstellen eines Prozesses das Deaktivieren der Umgebungsvariable eine höhere Priorität hat als das Setzen.

void setInterruptibleInFuture (Thread thread, long timeMs)

Nach einiger Wartezeit als unterbrechbar setzen.

void setLinuxInterruptProcess (boolean interrupt)

Erlauben Sie die Verwendung von Linux-'Kill'-Unterbrechungen für Prozesse, die durch #runTimed-Methoden ausgeführt werden, wenn eine Zeitüberschreitung erreicht wird.

void setRedirectStderrToStdout (boolean redirect)

Stellen Sie den Standardfehlerstream so ein, dass er beim Ausführen von Systembefehlen zum Standardausgabestream umgeleitet wird.

void setWorkingDir (File dir)

Legt das Arbeitsverzeichnis für Systembefehle fest.

void sleep (long time)

Hilfsmethode zum Schlafen für eine bestimmte Zeit, wobei alle Ausnahmen ignoriert werden.

void unsetEnvVariable (String key)

Setzt eine Umgebungsvariable zurück, sodass die Systembefehle ohne diese Umgebungsvariable ausgeführt werden. Umgebungsvariablen können vom übergeordneten Prozess erben, daher müssen wir die Umgebungsvariable aus ERROR(/ProcessBuilder#environment()) löschen.

Felder

INHERITIO_PREFIX

public static final String INHERITIO_PREFIX

RUNNABLE_NOTIFIER_NAME

public static final String RUNNABLE_NOTIFIER_NAME

Öffentliche Konstrukteure

RunUtil

public RunUtil ()

Erstellen Sie ein neues zu verwendendes RunUtil Objekt.

Öffentliche Methoden

erlaubenInterrupt

public void allowInterrupt (boolean allow)

Erlaubt/verbietet die Ausführung von Interrupts für den aktuellen Thread. Wenn dies zulässig ist, können Ausführungsvorgänge des aktuellen Threads von anderen Threads über die Methode interrupt(Thread, String) unterbrochen werden.

Parameter
allow boolean : ob Laufunterbrechungen für den aktuellen Thread zugelassen werden sollen.

getDefault

public static IRunUtil getDefault ()

Rufen Sie eine Referenz auf das standardmäßige RunUtil Objekt ab.

Dies ist nützlich für Anrufer, die IRunUtil ohne Anpassung verwenden möchten. Es wird empfohlen, dass Aufrufer, die eine benutzerdefinierte IRunUtil-Instanz benötigen (dh entweder setEnvVariable(String, String) oder setWorkingDir(File) aufrufen müssen), ihre eigene Kopie erstellen.

Kehrt zurück
IRunUtil

unterbrechen

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

Unterbricht die laufenden/anstehenden Ausführungsvorgänge für den angegebenen Thread. Die Ausführungsvorgänge für den angegebenen Thread lösen RunInterruptedException aus.

Parameter
message String : die Nachricht für RunInterruptedException .

errorId ErrorIdentifier : Stellt die Ursache der Unterbrechung dar, sofern bekannt.

unterbrechen

public void interrupt (Thread thread, 
                String message)

Unterbricht die laufenden/anstehenden Ausführungsvorgänge für den angegebenen Thread. Die Ausführungsvorgänge für den angegebenen Thread lösen RunInterruptedException aus.

Parameter
message String : die Nachricht für RunInterruptedException .

isInterruptAllowed

public boolean isInterruptAllowed ()

Geben Sie den Interrupt-Status von RunUtil an.

Kehrt zurück
boolean true, wenn der Run unterbrochen werden kann, andernfalls false.

runCmdInBackground

public Process runCmdInBackground (Redirect redirect, 
                 command)

Eine alternative runCmdInBackground(String) -Methode, die die Befehlsargumente in ERROR(/List) -Form akzeptiert.

Parameter
redirect Redirect : Der ERROR(/Redirect) der auf ERROR(/ProcessBuilder) angewendet werden soll.

command : Der ERROR(/List) enthält den angegebenen Systembefehl und optional Argumente für exec

Kehrt zurück
Process der ERROR(/Process) des ausgeführten Befehls

runCmdInBackground

public Process runCmdInBackground ( command)

Eine alternative runCmdInBackground(String) -Methode, die die Befehlsargumente in ERROR(/List) -Form akzeptiert.

Parameter
command : Der ERROR(/List) enthält den angegebenen Systembefehl und optional Argumente für exec

Kehrt zurück
Process der ERROR(/Process) des ausgeführten Befehls

runCmdInBackground

public Process runCmdInBackground ( command, 
                OutputStream output)

Ausführen des Befehls mit einem ERROR(/OutputStream) protokolliert die Ausgabe des Befehls. Stdout und stderr werden zusammengeführt.

Parameter
command : der auszuführende Befehl

output OutputStream : der OutputStream zum Speichern der Ausgabe

Kehrt zurück
Process der ERROR(/Process) führt den Befehl aus

runCmdInBackground

public Process runCmdInBackground (String... command)

Hilfsmethode zum asynchronen Ausführen eines Systembefehls.

Wird sofort nach dem Start des Befehls zurückgegeben.

Parameter
command String : der angegebene Systembefehl und optional Argumente für exec

Kehrt zurück
Process der ERROR(/Process) des ausgeführten Befehls

runCmdInBackground

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

Hilfsmethode zum asynchronen Ausführen eines Systembefehls.

Wird sofort nach dem Start des Befehls zurückgegeben.

Parameter
redirect Redirect : Der ERROR(/Redirect) der auf ERROR(/ProcessBuilder) angewendet werden soll.

command String : der angegebene Systembefehl und optional Argumente für exec

Kehrt zurück
Process der ERROR(/Process) des ausgeführten Befehls

runEscalatingTimedRetry

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

Blockiert und führt eine Operation mehrmals aus, bis sie erfolgreich ist.

Erhöhen Sie die Wartezeit zwischen den Vorgangsversuchen exponentiell. Dies soll verwendet werden, wenn eine Operation wie das Abfragen eines Servers durchgeführt wird, um ihm Zeit zum Wiederherstellen zu geben, falls er vorübergehend ausfällt.

Parameter
opTimeout long : Maximale Wartezeit in ms für einen einzelnen Vorgangsversuch

initialPollInterval long : anfängliche Wartezeit zwischen den Operationsversuchen

maxPollInterval long : die maximale Wartezeit zwischen den Operationsversuchen

maxTime long : die ungefähre maximale Gesamtzeit, um den Vorgang fortzusetzen

runnable IRunUtil.IRunnableResult : IRunUtil.IRunnableResult zum Ausführen

Kehrt zurück
boolean true , wenn der Vorgang erfolgreich abgeschlossen wurde, bevor maxTime abgelaufen ist

runFixedTimedRetry

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

Blockiert und führt eine Operation mehrmals aus, bis sie erfolgreich ist.

Parameter
opTimeout long : Maximale Wartezeit in ms für einen einzelnen Vorgangsversuch

pollInterval long : anfängliche Wartezeit zwischen den Operationsversuchen

maxTime long : die ungefähre maximale Gesamtzeit, um den Vorgang fortzusetzen

runnable IRunUtil.IRunnableResult : IRunUtil.IRunnableResult zum Ausführen

Kehrt zurück
boolean true , wenn der Vorgang erfolgreich abgeschlossen wurde, bevor maxTime abgelaufen ist

runTimed

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

Blockiert und führt eine Operation aus und bricht ab, wenn sie länger als eine angegebene Zeit dauert.

Parameter
timeout long : maximale Wartezeit in ms

runnable IRunUtil.IRunnableResult : IRunUtil.IRunnableResult zum Ausführen

logErrors boolean : Fehler bei Ausnahme protokollieren oder nicht.

Kehrt zurück
CommandStatus das CommandStatus Ergebnis der Operation.

runTimedCmd

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

Hilfsmethode zum Ausführen eines Systembefehls, zum Abbrechen, wenn dies länger als eine angegebene Zeit dauert, und zum Umleiten der Ausgabe in Dateien, falls angegeben. Wenn ERROR(/OutputStream) auf diese Weise bereitgestellt werden, bleiben sie am Ende der Funktion offen.

Parameter
timeout long : Timeout maximale Wartezeit in ms. 0 bedeutet kein Timeout.

stdout OutputStream : ERROR(/OutputStream) wo die Standardausgabe umgeleitet wird. Kann null sein.

stderr OutputStream : ERROR(/OutputStream) wo die Fehlerausgabe umgeleitet wird. Kann null sein.

command String : der angegebene Systembefehl und optional Argumente für exec

Kehrt zurück
CommandResult ein CommandResult , das das Ergebnis der Befehlsausführung enthält

runTimedCmd

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

Hilfsmethode zum Ausführen eines Systembefehls und zum Abbrechen, wenn es länger als eine angegebene Zeit dauert.

Parameter
timeout long : maximale Wartezeit in ms. 0 bedeutet kein Timeout.

command String : der angegebene Systembefehl und optional Argumente für exec

Kehrt zurück
CommandResult ein CommandResult , das das Ergebnis der Befehlsausführung enthält

runTimedCmdRetry

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

Hilfsmethode zum Ausführen eines Systembefehls und zum Abbrechen, wenn es länger als eine angegebene Zeit dauert.

Parameter
timeout long : maximale Wartezeit in ms für jeden Versuch

retryInterval long : Wartezeit zwischen Befehlswiederholungen

attempts int : die maximale Anzahl von Versuchen

command String : der angegebene Systembefehl und optional Argumente für exec

Kehrt zurück
CommandResult ein CommandResult , das das Ergebnis der Befehlsausführung enthält

runTimedCmdSilently

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

Hilfsmethode zum Ausführen eines Systembefehls und zum Abbrechen, wenn es länger als eine angegebene Zeit dauert. Ähnlich wie runTimedCmd(long, String) , protokolliert jedoch keine Fehler bei einer Ausnahme.

Parameter
timeout long : maximale Wartezeit in ms

command String : der angegebene Systembefehl und optional Argumente für exec

Kehrt zurück
CommandResult ein CommandResult , das das Ergebnis der Befehlsausführung enthält

runTimedCmdSilentlyRetry

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

Hilfsmethode zum Ausführen eines Systembefehls und zum Abbrechen, wenn es länger als eine angegebene Zeit dauert. Ähnlich wie runTimedCmdRetry(long, long, int, String[]) , protokolliert jedoch keine Fehler bei einer Ausnahme.

Parameter
timeout long : maximale Wartezeit in ms

retryInterval long : Wartezeit zwischen Befehlswiederholungen

attempts int : die maximale Anzahl von Versuchen

command String : der angegebene Systembefehl und optional Argumente für exec

Kehrt zurück
CommandResult ein CommandResult , das das Ergebnis der Befehlsausführung enthält

runTimedCmdWithInput

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

Hilfsmethode zum Ausführen eines Systembefehls, zum Abbrechen, wenn dies länger als eine angegebene Zeit dauert, und zum Umleiten der Ausgabe in Dateien, falls angegeben.

Parameter
timeout long : Timeout maximale Wartezeit in ms. 0 bedeutet kein Timeout.

input String : die stdin-Eingabe, die an den Prozess übergeben werden soll

stdoutFile File : ERROR(/File) wohin die std-Ausgabe umgeleitet wird. Kann null sein.

stderrFile File : ERROR(/File) wohin die Fehlerausgabe umgeleitet wird. Kann null sein.

command String : der angegebene Systembefehl und optional Argumente für exec

Kehrt zurück
CommandResult ein CommandResult , das das Ergebnis der Befehlsausführung enthält

runTimedCmdWithInput

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

Hilfsmethode zum Ausführen eines Systembefehls, der eine stdin-Eingabe erfordert, und zum Abbrechen, wenn dies länger als eine angegebene Zeit dauert.

Parameter
timeout long : maximale Wartezeit in ms

input String : die stdin-Eingabe, die an den Prozess übergeben werden soll

command String : der angegebene Systembefehl und optional Argumente für exec

Kehrt zurück
CommandResult ein CommandResult , das das Ergebnis der Befehlsausführung enthält

runTimedCmdWithInput

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

Hilfsmethode zum Ausführen eines Systembefehls, der eine stdin-Eingabe erfordert, und zum Abbrechen, wenn dies länger als eine angegebene Zeit dauert.

Parameter
timeout long : maximale Wartezeit in ms

input String : die stdin-Eingabe, die an den Prozess übergeben werden soll

command : ERROR(/List) enthält den Systembefehl und optional Argumente für exec

Kehrt zurück
CommandResult ein CommandResult , das das Ergebnis der Befehlsausführung enthält

runTimedCmdWithInputRedirect

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

Hilfsmethode zum Ausführen eines Systembefehls, der das Umleiten von Stdin aus einer Datei erfordert, und das Abbrechen, wenn es länger als eine angegebene Zeit dauert.

Parameter
timeout long : maximale Wartezeit in ms

inputRedirect File : der ERROR(/File) zum Umleiten als Standardeingabe mit ERROR(/ProcessBuilder#redirectInput()) . Wenn null, wird stdin nicht umgeleitet.

command String : der angegebene Systembefehl und optional Argumente für exec

Kehrt zurück
CommandResult ein CommandResult , das das Ergebnis der Befehlsausführung enthält

runTimedRetry

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

Blockiert und führt eine Operation mehrmals aus, bis sie erfolgreich ist.

Parameter
opTimeout long : maximale Wartezeit in ms für einen Operationsversuch

pollInterval long : Wartezeit zwischen Befehlswiederholungen

attempts int : die maximale Anzahl von Versuchen

runnable IRunUtil.IRunnableResult : IRunUtil.IRunnableResult zum Ausführen

Kehrt zurück
boolean true , wenn der Vorgang erfolgreich abgeschlossen wurde, bevor die Versuche erreicht wurden.

setEnvVariable

public void setEnvVariable (String name, 
                String value)

Legt eine Umgebungsvariable fest, die beim Ausführen von Systembefehlen verwendet werden soll.

Parameter
name String : der Variablenname

value String : der Variablenwert

setEnvVariablePriority

public void setEnvVariablePriority (IRunUtil.EnvPriority priority)

Entscheiden Sie, ob beim Erstellen eines Prozesses das Deaktivieren der Umgebungsvariable eine höhere Priorität hat als das Setzen. Standardmäßig hat das Deaktivieren eine höhere Priorität: Das heißt, wenn versucht wird, eine Variable mit demselben Namen zu setzen, wird dies nicht passieren, da die Variable zurückgesetzt wird. Kann nicht auf der standardmäßigen IRunUtil Instanz verwendet werden.

Parameter
priority IRunUtil.EnvPriority

setInterruptibleInFuture

public void setInterruptibleInFuture (Thread thread, 
                long timeMs)

Nach einiger Wartezeit als unterbrechbar setzen. ERROR(/CommandScheduler#shutdownHard()) um zu erzwingen, dass wir schließlich beenden.

Parameter
thread Thread : Der Thread, der unterbrechbar wird.

timeMs long : Wartezeit, bevor unterbrechbar eingestellt wird.

setLinuxInterruptProcess

public void setLinuxInterruptProcess (boolean interrupt)

Erlauben Sie die Verwendung von Linux-'Kill'-Unterbrechungen für Prozesse, die durch #runTimed-Methoden ausgeführt werden, wenn eine Zeitüberschreitung erreicht wird. Kann nicht auf der standardmäßigen IRunUtil Instanz verwendet werden.

Parameter
interrupt boolean

setRedirectStderrToStdout

public void setRedirectStderrToStdout (boolean redirect)

Stellen Sie den Standardfehlerstream so ein, dass er beim Ausführen von Systembefehlen zum Standardausgabestream umgeleitet wird. Der Anfangswert ist falsch.

Parameter
redirect boolean : neuer Wert, ob umgeleitet werden soll oder nicht

setWorkingDir

public void setWorkingDir (File dir)

Legt das Arbeitsverzeichnis für Systembefehle fest.

Parameter
dir File : das Arbeitsverzeichnis

schlafen

public void sleep (long time)

Hilfsmethode zum Schlafen für eine bestimmte Zeit, wobei alle Ausnahmen ignoriert werden.

Parameter
time long : ms zu schlafen. Werte kleiner oder gleich 0 werden ignoriert

unsetEnvVariable

public void unsetEnvVariable (String key)

Setzt eine Umgebungsvariable zurück, sodass die Systembefehle ohne diese Umgebungsvariable ausgeführt werden. Umgebungsvariablen können vom übergeordneten Prozess erben, daher müssen wir die Umgebungsvariable aus ERROR(/ProcessBuilder#environment()) löschen.

Parameter
key String : der Variablenname