実行ユーティリティ
public
class
RunUtil
extends Object
implements
IRunUtil
java.lang.Object | |
↳ | com.android.tradefed.util.RunUtil |
オペレーションの実行に使用するヘルパー メソッドのコレクション。
概要
フィールド | |
---|---|
public
static
final
String |
INHERITIO_PREFIX
|
public
static
final
String |
RUNNABLE_NOTIFIER_NAME
|
パブリック コンストラクタ | |
---|---|
RunUtil()
使用する新しい |
|
RunUtil(boolean inheritEnvVars)
|
パブリック メソッド | |
---|---|
void
|
allowInterrupt(boolean allow)
現在のスレッドで実行中断を許可または禁止します。 |
ProcessBuilder
|
createProcessBuilder(Redirect redirect,
|
static
IRunUtil
|
getDefault()
デフォルトの |
void
|
interrupt(Thread thread, String message, ErrorIdentifier errorId)
指定されたスレッドで進行中または今後実行される実行オペレーションを中断します。 |
void
|
interrupt(Thread thread, String message)
指定されたスレッドで進行中または今後実行される実行オペレーションを中断します。 |
boolean
|
isInterruptAllowed()
RunUtil の中断ステータスを返します。 |
static
File
|
linkFile(File destRoot, String relToRoot, File target)
|
Process
|
runCmdInBackground(Redirect redirect,
|
Process
|
runCmdInBackground(
|
Process
|
runCmdInBackground(
|
Process
|
runCmdInBackground(String... command)
システム コマンドを非同期で実行するヘルパー メソッド。 |
Process
|
runCmdInBackground(Redirect redirect, String... command)
システム コマンドを非同期で実行するヘルパー メソッド。 |
boolean
|
runEscalatingTimedRetry(long opTimeout, long initialPollInterval, long maxPollInterval, long maxTime, IRunUtil.IRunnableResult runnable)
オペレーションをブロックし、成功するまで複数回実行します。 |
boolean
|
runFixedTimedRetry(long opTimeout, long pollInterval, long maxTime, IRunUtil.IRunnableResult runnable)
オペレーションをブロックし、成功するまで複数回実行します。 |
boolean
|
runFixedTimedRetryWithOutputMonitor(long opTimeout, long idleOutputTimeout, long pollInterval, long maxTime, IRunUtil.IRunnableResult runnable)
オペレーションが成功するまで、オペレーションをブロックして複数回実行します。 |
CommandStatus
|
runTimed(long timeout, IRunUtil.IRunnableResult runnable, boolean logErrors)
オペレーションをブロックして実行し、指定された時間よりも時間がかかる場合は中止します。 |
CommandResult
|
runTimedCmd(long timeout, OutputStream stdout, OutputStream stderr, String... command)
システム コマンドを実行し、指定された時間よりも時間がかかっている場合は中止し、指定された場合は出力をファイルにリダイレクトするヘルパー メソッド。 |
CommandResult
|
runTimedCmd(long timeout, String... command)
システム コマンドを実行し、指定した時間を超えると中止するヘルパー メソッド。 |
CommandResult
|
runTimedCmdRetry(long timeout, long retryInterval, int attempts, String... command)
システム コマンドを実行し、指定された時間よりも時間がかかっている場合は中止するヘルパー メソッド。 |
CommandResult
|
runTimedCmdRetryWithOutputMonitor(long timeout, long idleOutputTimeout, long retryInterval, int attempts, String... command)
システム コマンドを実行し、指定された時間よりも時間がかかっている場合は中止するヘルパー メソッド。 |
CommandResult
|
runTimedCmdSilently(long timeout, String... command)
システム コマンドを実行し、指定された時間よりも時間がかかっている場合は中止するヘルパー メソッド。 |
CommandResult
|
runTimedCmdSilentlyRetry(long timeout, long retryInterval, int attempts, String... command)
システム コマンドを実行し、指定した時間を超えると中止するヘルパー メソッド。 |
CommandResult
|
runTimedCmdWithInput(long timeout, String input, File stdoutFile, File stderrFile, String... command)
システム コマンドを実行し、指定された時間よりも時間がかかっている場合は中止し、指定された場合は出力をファイルにリダイレクトするヘルパー メソッド。 |
CommandResult
|
runTimedCmdWithInput(long timeout, String input, String... command)
stdin 入力を必要とするシステム コマンドを実行し、指定された時間を超えると中止するヘルパー メソッド。 |
CommandResult
|
runTimedCmdWithInput(long timeout, String input,
stdin 入力を必要とするシステム コマンドを実行し、指定された時間を超えると中止するヘルパー メソッド。 |
CommandResult
|
runTimedCmdWithInputRedirect(long timeout, File inputRedirect, String... command)
ファイルから Stdin をリダイレクトする必要があるシステム コマンドを実行し、指定された時間を超えると中止するヘルパー メソッド。 |
CommandResult
|
runTimedCmdWithOutputMonitor(long timeout, long idleOutputTimeout, OutputStream stdout, OutputStream stderr, String... command)
システム コマンドを実行し、指定された時間を超えると中止し、指定されている場合は出力をファイルにリダイレクトするヘルパー メソッド。 |
CommandResult
|
runTimedCmdWithOutputMonitor(long timeout, long idleOutputTimeout, String... command)
システム コマンドを実行し、指定した時間を超えると中止するヘルパー メソッド。 |
CommandResult
|
runTimedCmdWithOutputMonitor(long timeout, long idleOutputTimeout, OutputStream stdout, OutputStream stderr, ICacheClient cacheClient, String... command)
キャッシュ保存を使用するシステム コマンドを実行するためのヘルパー メソッド。 |
boolean
|
runTimedRetry(long opTimeout, long pollInterval, int attempts, IRunUtil.IRunnableResult runnable)
オペレーションが成功するまで、オペレーションをブロックして複数回実行します。 |
boolean
|
runTimedRetryWithOutputMonitor(long opTimeout, long idleOutputTimeout, long pollInterval, int attempts, IRunUtil.IRunnableResult runnable)
オペレーションが成功するまで、オペレーションをブロックして複数回実行します。 |
CommandStatus
|
runTimedWithOutputMonitor(long timeout, long idleOutputTimeout, IRunUtil.IRunnableResult runnable, boolean logErrors)
オペレーションをブロックして実行し、指定された時間を超えると中止します。 |
void
|
setEnvVariable(String name, String value)
システム コマンドの実行時に使用される環境変数を設定します。 |
void
|
setEnvVariablePriority(IRunUtil.EnvPriority priority)
プロセスの作成時に、環境変数の設定解除が設定よりも優先されるかどうかを決定します。 |
void
|
setInterruptibleInFuture(Thread thread, long timeMs)
一定の待ち時間後に割り込み可能として設定される。 |
void
|
setLinuxInterruptProcess(boolean interrupt)
タイムアウトに達したときに、#runTimed メソッドで実行されているプロセスで Linux の「kill」中断を使用できるようにしました。 |
void
|
setRedirectStderrToStdout(boolean redirect)
システム コマンドの実行時に標準出力ストリームにリダイレクトするように標準エラー ストリームを設定します。 |
void
|
setWorkingDir(File dir)
システム コマンドの作業ディレクトリを設定します。 |
void
|
sleep(long time)
例外を無視して、指定された時間スリープするヘルパー メソッド。 |
static
String
|
toRelative(File start, File target)
|
static
String
|
toRelative(File start, String target)
|
void
|
unsetEnvVariable(String key)
環境変数の設定を解除し、システム コマンドがこの環境変数なしで実行されるようにします。環境変数は親プロセスから継承される可能性があるため、 |
void
|
uploadCache(ICacheClient cacheClient, ExecutableActionResult actionResult)
前回 |
フィールド
INHERITIO_PREFIX
public static final String INHERITIO_PREFIX
RUNNABLE_NOTIFIER_NAME
public static final String RUNNABLE_NOTIFIER_NAME
パブリック コンストラクタ
RunUtil
public RunUtil (boolean inheritEnvVars)
パラメータ | |
---|---|
inheritEnvVars |
boolean |
パブリック メソッド
allowInterrupt
public void allowInterrupt (boolean allow)
現在のスレッドで実行中断を許可または禁止します。許可されている場合、現在のスレッドの実行オペレーションは、interrupt(Thread, String)
メソッドを介して他のスレッドから中断できます。
パラメータ | |
---|---|
allow |
boolean : 現在のスレッドでの実行割り込みを許可するかどうか。 |
createProcessBuilder
public ProcessBuilder createProcessBuilder (Redirect redirect,commandList, boolean enableCache)
パラメータ | |
---|---|
redirect |
Redirect |
commandList |
|
enableCache |
boolean |
戻り値 | |
---|---|
ProcessBuilder |
getDefault
public static IRunUtil getDefault ()
デフォルトの RunUtil
オブジェクトへの参照を取得します。
これは、カスタマイズなしで IRunUtil を使用する呼び出し元に便利です。カスタムの IRunUtil インスタンスが必要な呼び出し元(setEnvVariable(String, String)
または setWorkingDir(File)
のいずれかを呼び出す必要がある呼び出し元)は、独自のコピーを作成することをおすすめします。
戻り値 | |
---|---|
IRunUtil |
割り込み
public void interrupt (Thread thread, String message, ErrorIdentifier errorId)
指定されたスレッドでの進行中または今後の実行オペレーションを中断します。指定されたスレッドで実行オペレーションを実行すると、RunInterruptedException
がスローされます。
パラメータ | |
---|---|
message |
String : RunInterruptedException のメッセージ。 |
errorId |
ErrorIdentifier : 中断の原因(既知の場合)。 |
割り込み
public void interrupt (Thread thread, String message)
指定されたスレッドで進行中または今後実行される実行オペレーションを中断します。指定されたスレッドで実行オペレーションを実行すると、RunInterruptedException
がスローされます。
パラメータ | |
---|---|
message |
String : RunInterruptedException のメッセージ。 |
isInterruptAllowed
public boolean isInterruptAllowed ()
RunUtil の中断ステータスを返します。
戻り値 | |
---|---|
boolean |
実行を中断できる場合は true、それ以外の場合は false。 |
linkFile
public static File linkFile (File destRoot, String relToRoot, File target)
target
を destRoot
の下の場所にリンクします。
ターゲット ファイルまたはシンボリック リンクが destRoot
の下にすでに存在する場合、ファイルはリンクされません。
パラメータ | |
---|---|
destRoot |
File : 宛先のルート。 |
relToRoot |
String : 宛先ディレクトリからルートまでの相対パス。 |
target |
File : リンクするターゲット ファイル。 |
戻り値 | |
---|---|
File |
シンボリック リンク |
例外 | |
---|---|
|
リンクに失敗した場合に表示されます。 |
runCmdInBackground
public Process runCmdInBackground (Redirect redirect,command)
ERROR(/List)
形式のコマンド引数を受け取る代替の runCmdInBackground(String)
メソッド。
パラメータ | |
---|---|
redirect |
Redirect : ProcessBuilder に適用する ERROR(/Redirect) 。 |
command |
: 指定されたシステム コマンドと、必要に応じて実行する引数を含む ERROR(/List) |
戻り値 | |
---|---|
Process |
実行されたコマンドの Process |
runCmdInBackground
public Process runCmdInBackground (command)
ERROR(/List)
形式のコマンド引数を受け取る代替の runCmdInBackground(String)
メソッド。
パラメータ | |
---|---|
command |
: 指定されたシステム コマンドと exec 引数(省略可)を含む ERROR(/List) |
戻り値 | |
---|---|
Process |
実行されたコマンドの Process |
runCmdInBackground
public Process runCmdInBackground (command, OutputStream output)
ERROR(/OutputStream)
を指定してコマンドを実行すると、コマンドの出力がログに記録されます。stdout と stderr が統合される。
パラメータ | |
---|---|
command |
: 実行するコマンド |
output |
OutputStream : 出力を保存する OutputStream |
戻り値 | |
---|---|
Process |
コマンドを実行している Process |
runCmdInBackground
public Process runCmdInBackground (String... command)
システム コマンドを非同期で実行するヘルパー メソッド。
コマンドの起動直後に返されます。
パラメータ | |
---|---|
command |
String : 指定されたシステム コマンドと exec 引数(省略可) |
戻り値 | |
---|---|
Process |
実行されたコマンドの Process |
runCmdInBackground
public Process runCmdInBackground (Redirect redirect, String... command)
システム コマンドを非同期で実行するヘルパー メソッド。
コマンドの起動直後に返されます。
パラメータ | |
---|---|
redirect |
Redirect : ProcessBuilder に適用する ERROR(/Redirect) 。 |
command |
String : 指定されたシステム コマンドと、必要に応じて exec の引数 |
戻り値 | |
---|---|
Process |
実行されたコマンドの Process |
runEscalatingTimedRetry
public boolean runEscalatingTimedRetry (long opTimeout, long initialPollInterval, long maxPollInterval, long maxTime, IRunUtil.IRunnableResult runnable)
オペレーションをブロックし、成功するまで複数回実行します。
オペレーションの試行間の待機時間を指数関数的に増やします。これは、サーバーが一時的に停止した場合に復旧する時間を確保するために、サーバーのポーリングなどのオペレーションを実行するときに使用されます。
パラメータ | |
---|---|
opTimeout |
long : 1 回のオペレーションの試行で待機する最大時間(ミリ秒) |
initialPollInterval |
long : オペレーションの試行の間に待機する初期時間 |
maxPollInterval |
long : オペレーションの試行の間に待機する最大時間 |
maxTime |
long : オペレーションの試行を続行するおおよその最大時間の合計 |
runnable |
IRunUtil.IRunnableResult : 実行する IRunUtil.IRunnableResult |
戻り値 | |
---|---|
boolean |
maxTime の期限が切れる前にオペレーションが正常に完了した場合は true |
runFixedTimedRetry
public boolean runFixedTimedRetry (long opTimeout, long pollInterval, long maxTime, IRunUtil.IRunnableResult runnable)
オペレーションが成功するまで、オペレーションをブロックして複数回実行します。
パラメータ | |
---|---|
opTimeout |
long : 1 回のオペレーションの試行で待機する最大時間(ミリ秒) |
pollInterval |
long : オペレーションの試行の間に待機する初期時間 |
maxTime |
long : オペレーションの再試行を続ける合計推定最大時間 |
runnable |
IRunUtil.IRunnableResult : 実行する IRunUtil.IRunnableResult |
戻り値 | |
---|---|
boolean |
true (maxTime が期限切れになる前にオペレーションが正常に完了した場合) |
runFixedTimedRetryWithOutputMonitor
public boolean runFixedTimedRetryWithOutputMonitor (long opTimeout, long idleOutputTimeout, long pollInterval, long maxTime, IRunUtil.IRunnableResult runnable)
オペレーションが成功するまで、オペレーションをブロックして複数回実行します。また、出力ストリームのアクティビティをモニタリングし、指定した時間ストリーム アクティビティが検出されなかった場合は中止します。emptyOutputTimeout を 0 に設定した場合、ストリームのモニタリングは行われません。
パラメータ | |
---|---|
opTimeout |
long : 1 回のオペレーションの試行の最大待機時間(ミリ秒) |
idleOutputTimeout |
long : 出力ストリームの出力を待機する最大時間(ミリ秒) |
pollInterval |
long : オペレーションの試行の間に待機する初期時間 |
maxTime |
long : オペレーションの再試行を続ける合計推定最大時間 |
runnable |
IRunUtil.IRunnableResult : 実行する IRunUtil.IRunnableResult |
戻り値 | |
---|---|
boolean |
true (maxTime が期限切れになる前にオペレーションが正常に完了した場合) |
実行時間
public CommandStatus runTimed (long timeout, IRunUtil.IRunnableResult runnable, boolean logErrors)
オペレーションをブロックして実行し、指定された時間を超えると中止します。
パラメータ | |
---|---|
timeout |
long : 最大待機時間(ミリ秒) |
runnable |
IRunUtil.IRunnableResult : 実行する IRunUtil.IRunnableResult |
logErrors |
boolean : 例外でエラーをログに記録するかどうか。 |
戻り値 | |
---|---|
CommandStatus |
演算の CommandStatus の結果。 |
runTimedCmd
public CommandResult runTimedCmd (long timeout, OutputStream stdout, OutputStream stderr, String... command)
システム コマンドを実行し、指定された時間よりも長くかかる場合は中止し、指定された場合は出力をファイルにリダイレクトするヘルパー メソッド。このように ERROR(/OutputStream)
を指定すると、関数の終了時に開いたままになります。
パラメータ | |
---|---|
timeout |
long : タイムアウトの最大待機時間(ミリ秒単位)。0 はタイムアウトがないことを意味します。 |
stdout |
OutputStream : 標準出力がリダイレクトされる ERROR(/OutputStream) 。null の場合もあります。 |
stderr |
OutputStream : エラー出力がリダイレクトされる ERROR(/OutputStream) 。null の場合もあります。 |
command |
String : 指定されたシステム コマンドと exec 引数(省略可) |
戻り値 | |
---|---|
CommandResult |
コマンドの実行結果を含む CommandResult |
runTimedCmd
public CommandResult runTimedCmd (long timeout, String... command)
システム コマンドを実行し、指定された時間を超えると中止するヘルパー メソッド。
パラメータ | |
---|---|
timeout |
long : 待機する最大時間(ミリ秒単位)。0 はタイムアウトなしを意味します。 |
command |
String : 指定されたシステム コマンドと、必要に応じて exec の引数 |
戻り値 | |
---|---|
CommandResult |
コマンドの実行結果を含む CommandResult |
runTimedCmdRetry
public CommandResult runTimedCmdRetry (long timeout, long retryInterval, int attempts, String... command)
システム コマンドを実行し、指定された時間を超えると中止するヘルパー メソッド。
パラメータ | |
---|---|
timeout |
long : 各試行の最大待機時間(ミリ秒) |
retryInterval |
long : コマンド再試行までの待機時間 |
attempts |
int : 試行の最大回数 |
command |
String : 指定されたシステム コマンドと、必要に応じて exec の引数 |
戻り値 | |
---|---|
CommandResult |
コマンドの実行結果を含む CommandResult |
runTimedCmdRetryWithOutputMonitor
public CommandResult runTimedCmdRetryWithOutputMonitor (long timeout, long idleOutputTimeout, long retryInterval, int attempts, String... command)
システム コマンドを実行し、指定された時間を超えると中止するヘルパー メソッド。また、出力ストリームのアクティビティをモニタリングし、指定した時間内にストリーム アクティビティが検出されなかった場合は中止します。idleOutputTimeout がゼロに設定されている場合、ストリーム モニタリングは行われません。
パラメータ | |
---|---|
timeout |
long : 各試行で待機する最大時間(ミリ秒) |
idleOutputTimeout |
long : 出力ストリームの出力を待機する最大時間(ミリ秒) |
retryInterval |
long : コマンドの再試行の間に待機する時間 |
attempts |
int : 試行の最大回数 |
command |
String : 指定されたシステム コマンドと、必要に応じて exec の引数 |
戻り値 | |
---|---|
CommandResult |
コマンドの実行結果を含む CommandResult |
runTimedCmdSilently
public CommandResult runTimedCmdSilently (long timeout, String... command)
システム コマンドを実行し、指定された時間を超えると中止するヘルパー メソッド。runTimedCmd(long, String)
に似ていますが、例外でエラーをログに記録しません。
パラメータ | |
---|---|
timeout |
long : 待機する最大時間(ミリ秒) |
command |
String : 指定されたシステム コマンドと、必要に応じて exec の引数 |
戻り値 | |
---|---|
CommandResult |
コマンド実行の結果を含む CommandResult |
runTimedCmdSilentlyRetry
public CommandResult runTimedCmdSilentlyRetry (long timeout, long retryInterval, int attempts, String... command)
システム コマンドを実行するためのヘルパー メソッド。指定した時間よりも時間がかかっている場合は中断します。runTimedCmdRetry(long, long, int, String[])
に似ていますが、例外でエラーをログに記録しません。
パラメータ | |
---|---|
timeout |
long : 最大待機時間(ミリ秒) |
retryInterval |
long : コマンドの再試行の間に待機する時間 |
attempts |
int : 試行の最大回数 |
command |
String : 指定されたシステム コマンドと、必要に応じて exec の引数 |
戻り値 | |
---|---|
CommandResult |
コマンドの実行結果を含む CommandResult |
runTimedCmdWithInput
public CommandResult runTimedCmdWithInput (long timeout, String input, File stdoutFile, File stderrFile, String... command)
システム コマンドを実行し、指定された時間を超えると中止し、指定されている場合は出力をファイルにリダイレクトするヘルパー メソッド。
パラメータ | |
---|---|
timeout |
long : 待機するタイムアウトの最大時間(ミリ秒単位)。0 はタイムアウトなしを意味します。 |
input |
String : プロセスに渡す stdin 入力 |
stdoutFile |
File : 標準出力がリダイレクトされる ERROR(/File) 。null の場合もあります。 |
stderrFile |
File : エラー出力のリダイレクト先の ERROR(/File) 。null の場合もあります。 |
command |
String : 指定されたシステム コマンドと exec 引数(省略可) |
戻り値 | |
---|---|
CommandResult |
コマンドの実行結果を含む CommandResult |
runTimedCmdWithInput
public CommandResult runTimedCmdWithInput (long timeout, String input, String... command)
stdin 入力を必要とするシステム コマンドを実行し、指定された時間を超えると中止するヘルパー メソッド。
パラメータ | |
---|---|
timeout |
long : 待機する最大時間(ミリ秒) |
input |
String : プロセスに渡す stdin 入力 |
command |
String : 指定されたシステム コマンドと exec 引数(省略可) |
戻り値 | |
---|---|
CommandResult |
コマンド実行の結果を含む CommandResult |
runTimedCmdWithInput
public CommandResult runTimedCmdWithInput (long timeout, String input,command)
stdin 入力を必要とするシステム コマンドを実行し、指定された時間を超えると中止するヘルパー メソッド。
パラメータ | |
---|---|
timeout |
long : 待機する最大時間(ミリ秒) |
input |
String : プロセスに渡す stdin 入力 |
command |
: システム コマンドと、必要に応じて実行する引数を含む ERROR(/List) |
戻り値 | |
---|---|
CommandResult |
コマンド実行の結果を含む CommandResult |
runTimedCmdWithInputRedirect
public CommandResult runTimedCmdWithInputRedirect (long timeout, File inputRedirect, String... command)
ファイルから Stdin をリダイレクトし、指定された時間よりも時間がかかっている場合は中止する必要があるシステム コマンドを実行するためのヘルパー メソッド。
パラメータ | |
---|---|
timeout |
long : 待機する最大時間(ミリ秒) |
inputRedirect |
File : ProcessBuilder.redirectInput() を使用して標準入力としてリダイレクトする ERROR(/File) 。null の場合、stdin はリダイレクトされません。 |
command |
String : 指定されたシステム コマンドと、必要に応じて exec の引数 |
戻り値 | |
---|---|
CommandResult |
コマンドの実行結果を含む CommandResult |
runTimedCmdWithOutputMonitor
public CommandResult runTimedCmdWithOutputMonitor (long timeout, long idleOutputTimeout, OutputStream stdout, OutputStream stderr, String... command)
システム コマンドを実行し、指定された時間を超えると中止し、指定されている場合は出力をファイルにリダイレクトするヘルパー メソッド。このように ERROR(/OutputStream)
を指定すると、関数の終了時に開いたままになります。
パラメータ | |
---|---|
timeout |
long : 待機するタイムアウトの最大時間(ミリ秒単位)。0 はタイムアウトなしを意味します。 |
idleOutputTimeout |
long : 出力ストリームでの出力の最大待機時間(ミリ秒) |
stdout |
OutputStream : 標準出力がリダイレクトされる ERROR(/OutputStream) 。null の場合もあります。 |
stderr |
OutputStream : エラー出力のリダイレクト先の ERROR(/OutputStream) 。null の場合もあります。 |
command |
String : 指定されたシステム コマンドと exec 引数(省略可) |
戻り値 | |
---|---|
CommandResult |
コマンドの実行結果を含む CommandResult |
runTimedCmdWithOutputMonitor
public CommandResult runTimedCmdWithOutputMonitor (long timeout, long idleOutputTimeout, String... command)
システム コマンドを実行するためのヘルパー メソッド。指定した時間よりも時間がかかっている場合は中断します。アクティビティの出力ストリームもモニタリングし、指定した時間にわたってストリーム アクティビティが検出されなければ中止します。emptyOutputTimeout が 0 に設定されている場合、ストリームのモニタリングは行われません。
パラメータ | |
---|---|
timeout |
long : 待機する最大時間(ミリ秒単位)。0 はタイムアウトなしを意味します。 |
idleOutputTimeout |
long : 出力ストリームの出力を待機する最大時間(ミリ秒) |
command |
String : 指定されたシステム コマンドと、必要に応じて exec の引数 |
戻り値 | |
---|---|
CommandResult |
コマンドの実行結果を含む CommandResult |
runTimedCmdWithOutputMonitor
public CommandResult runTimedCmdWithOutputMonitor (long timeout, long idleOutputTimeout, OutputStream stdout, OutputStream stderr, ICacheClient cacheClient, String... command)
キャッシュ保存を使用するシステム コマンドを実行するためのヘルパー メソッド。
cacheClient
を指定すると、キャッシュ保存が有効になります。キャッシュが使用可能な場合は、キャッシュに保存された結果が返されます。それ以外の場合は、runTimedCmdWithOutputMonitor(long, long, OutputStream, OutputStream, String)
を使用してコマンドを実行し、結果をアップロードしてキャッシュに保存します。
パラメータ | |
---|---|
timeout |
long : 待機するタイムアウトの最大時間(ミリ秒単位)。0 はタイムアウトなしを意味します。 |
idleOutputTimeout |
long : 出力ストリームの出力を待機する最大時間(ミリ秒単位)。 |
stdout |
OutputStream : 標準出力がリダイレクトされる ERROR(/OutputStream) 。null の場合もあります。 |
stderr |
OutputStream : エラー出力がリダイレクトされる ERROR(/OutputStream) 。null の場合もあります。 |
cacheClient |
ICacheClient : キャッシュ処理に使用される ICacheClient のインスタンス。 |
command |
String : 指定されたシステム コマンドと、必要に応じて exec の引数。 |
戻り値 | |
---|---|
CommandResult |
コマンドの実行結果を含む CommandResult 。 |
runTimedRetry
public boolean runTimedRetry (long opTimeout, long pollInterval, int attempts, IRunUtil.IRunnableResult runnable)
オペレーションが成功するまで、オペレーションをブロックして複数回実行します。
パラメータ | |
---|---|
opTimeout |
long : 1 回のオペレーション試行の最大待機時間(ミリ秒) |
pollInterval |
long : コマンドの再試行の間に待機する時間 |
attempts |
int : 試行する最大回数 |
runnable |
IRunUtil.IRunnableResult : 実行する IRunUtil.IRunnableResult |
戻り値 | |
---|---|
boolean |
試行に達する前にオペレーションが正常に完了した場合は true 。 |
runTimedRetryWithOutputMonitor
public boolean runTimedRetryWithOutputMonitor (long opTimeout, long idleOutputTimeout, long pollInterval, int attempts, IRunUtil.IRunnableResult runnable)
オペレーションが成功するまで、オペレーションをブロックして複数回実行します。アクティビティの出力ストリームもモニタリングし、指定した時間にわたってストリーム アクティビティが観察されない場合には中止します。 idleOutputTimeout がゼロに設定されている場合、ストリーム モニタリングは行われません。
パラメータ | |
---|---|
opTimeout |
long : 1 回のオペレーションの試行で待機する最大時間(ミリ秒単位) |
idleOutputTimeout |
long : 出力ストリームの出力を待機する最大時間(ミリ秒) |
pollInterval |
long : コマンドの再試行の間に待機する時間 |
attempts |
int : 試行する最大回数 |
runnable |
IRunUtil.IRunnableResult : 実行する IRunUtil.IRunnableResult |
戻り値 | |
---|---|
boolean |
試行に達する前にオペレーションが正常に完了した場合は true 。 |
runTimedWithOutputMonitor
public CommandStatus runTimedWithOutputMonitor (long timeout, long idleOutputTimeout, IRunUtil.IRunnableResult runnable, boolean logErrors)
オペレーションをブロックして実行し、指定した時間よりも時間がかかる場合は中止します。また、出力ストリームのアクティビティをモニタリングし、指定された時間にストリーム アクティビティが検出されなかった場合は中止します。emptyOutputTimeout を 0 に設定した場合、ストリームのモニタリングは行われません。
パラメータ | |
---|---|
timeout |
long : 待機する最大時間(ミリ秒) |
idleOutputTimeout |
long : 出力ストリームの出力を待機する最大時間(ミリ秒) |
runnable |
IRunUtil.IRunnableResult : 実行する IRunUtil.IRunnableResult |
logErrors |
boolean : 例外でエラーをログに記録するかどうか。 |
戻り値 | |
---|---|
CommandStatus |
オペレーションの CommandStatus 結果。 |
setEnvVariable
public void setEnvVariable (String name, String value)
システム コマンドの実行時に使用される環境変数を設定します。
パラメータ | |
---|---|
name |
String : 変数名 |
value |
String : 変数の値 |
setEnvVariablePriority
public void setEnvVariablePriority (IRunUtil.EnvPriority priority)
プロセスの作成時に、環境変数の設定解除が設定よりも優先されるかどうかを決定します。デフォルトでは、無効化の優先度が高くなります。つまり、同じ名前の変数の設定を試みても、変数が無効になっているため、設定は行われません。デフォルトの IRunUtil
インスタンスでは使用できません。
パラメータ | |
---|---|
priority |
IRunUtil.EnvPriority |
setInterruptibleInFuture
public void setInterruptibleInFuture (Thread thread, long timeMs)
一定の待ち時間後に割り込み可能として設定されます。ERROR(/CommandScheduler#shutdownHard())
は、最終的に強制終了することを強制します。
パラメータ | |
---|---|
thread |
Thread : 中断可能になるスレッド。 |
timeMs |
long : 中断可能を設定してから待機する時間。 |
setLinuxInterruptProcess
public void setLinuxInterruptProcess (boolean interrupt)
タイムアウトに達したときに、#runTimed メソッドで実行されているプロセスで Linux の「kill」中断を使用できるようにしました。
デフォルトの IRunUtil
インスタンスでは使用できません。
パラメータ | |
---|---|
interrupt |
boolean |
setRedirectStderrToStdout
public void setRedirectStderrToStdout (boolean redirect)
システム コマンドを実行するときに、標準出力ストリームにリダイレクトするように標準エラー ストリームを設定します。初期値は false です。
パラメータ | |
---|---|
redirect |
boolean : リダイレクトするかどうかの新しい値 |
setWorkingDir
public void setWorkingDir (File dir)
システム コマンドの作業ディレクトリを設定します。
パラメータ | |
---|---|
dir |
File : 作業ディレクトリ |
sleep
public void sleep (long time)
例外を無視して、指定された時間スリープするヘルパー メソッド。
パラメータ | |
---|---|
time |
long : スリープする時間(ミリ秒)。0 以下の値は無視されます。 |
toRelative
public static String toRelative (File start, File target)
パラメータ | |
---|---|
start |
File |
target |
File |
戻り値 | |
---|---|
String |
相対的
public static String toRelative (File start, String target)
パラメータ | |
---|---|
start |
File |
target |
String |
戻り値 | |
---|---|
String |
unsetEnvVariable
public void unsetEnvVariable (String key)
環境変数の設定を解除し、システム コマンドがこの環境変数なしで実行されるようにします。環境変数は親プロセスから継承される場合があるため、ProcessBuilder.environment()
から環境変数を削除する必要があります。
パラメータ | |
---|---|
key |
String : 変数名 |
uploadCache
public void uploadCache (ICacheClient cacheClient, ExecutableActionResult actionResult)
前回 ExecutableActionResult
が cacheClient で実行されたアップロード。
パラメータ | |
---|---|
cacheClient |
ICacheClient : 結果のアップロードに使用される ICacheClient 。 |
actionResult |
ExecutableActionResult : アップロードする ExecutableActionResult 。 |