嵌套類 |
---|
class | ProcessUtil.KillException |
公共方法 |
---|
static Optional<IFileEntry> | findFileLoadedByProcess (ITestDevice device, String process, String filenameSubstr) 返回由指定進程加載的具有指定名稱的第一個文件的文件條目 |
static Optional<List<String>> | findFilesLoadedByProcess (ITestDevice device, int pid, Pattern filePattern) 返回由指定進程加載的指定文件的文件名。 |
static Optional<String> | getProcessName (ITestDevice device, int pid) 從 /proc/pid/cmdline 中獲取內容。 |
static boolean | killAll (ITestDevice device, String pgrepRegex, long timeoutMs, boolean expectExist) 將 SIGKILL 發送到匹配模式的所有進程。 |
static boolean | killAll (ITestDevice device, String pgrepRegex, long timeoutMs) 將 SIGKILL 發送到匹配模式的所有進程。 |
static void | killPid (ITestDevice device, int pid, long timeoutMs) 向進程發送 SIGKILL 並等待它退出。 |
static void | killPid (ITestDevice device, int pid, int signal, long timeoutMs) 向進程發送信號並等待它退出。 |
static Optional<List<String>> | listOpenFiles (ITestDevice device, int pid) 返回指定進程當前打開的文件名。 |
static Optional<Integer> | pidOf (ITestDevice device, String pgrepRegex) 獲取與傳遞給 `pgrep` 的模式匹配的單個 pid。 |
static Optional<Map<Integer, String>> | pidsOf (ITestDevice device, String pgrepRegex) 獲取與傳遞給 `pgrep` 的模式相匹配的 pids。 |
static void | waitPidExited (ITestDevice device, int pid) 等待進程退出。 |
static void | waitPidExited (ITestDevice device, int pid, long timeoutMs) 等待進程退出。 |
static Map<Integer, String> | waitProcessRunning (ITestDevice device, String pgrepRegex, long timeoutMs) 等到為給定的正則表達式找到正在運行的進程。 |
static Map<Integer, String> | waitProcessRunning (ITestDevice device, String pgrepRegex) 等到為給定的正則表達式找到正在運行的進程。 |
static AutoCloseable | withProcessKill (ITestDevice device, String pgrepRegex, Runnable beforeCloseKill, long timeoutMs) 在測試開始和結束時終止進程。 |
static AutoCloseable | withProcessKill (ITestDevice device, String pgrepRegex, Runnable beforeCloseKill) 在測試開始和結束時終止進程。 |
常量
PROCESS_POLL_PERIOD_MS
public static final long PROCESS_POLL_PERIOD_MS
常數值:250 (0x00000000000000fa)
PROCESS_WAIT_TIMEOUT_MS
public static final long PROCESS_WAIT_TIMEOUT_MS
常數值:10000 (0x0000000000002710)
公共方法
findFileLoadedByProcess
public static Optional<IFileEntry> findFileLoadedByProcess (ITestDevice device,
String process,
String filenameSubstr)
返回由指定進程加載的具有指定名稱的第一個文件的文件條目
參數 |
---|
device | ITestDevice :要運行的設備 |
process | String :要查找的進程的 pgrep 模式 |
filenameSubstr | String : 進程加載的部分文件名/路徑 |
退貨 |
---|
Optional<IFileEntry> | 設備上文件路徑的可選 IFileEntry(如果存在)。 |
投擲 |
---|
DeviceNotAvailableException | |
findFilesLoadedByProcess
public static Optional<List<String>> findFilesLoadedByProcess (ITestDevice device,
int pid,
Pattern filePattern)
返回由指定進程加載的指定文件的文件名。
參數 |
---|
device | ITestDevice :要運行的設備 |
pid | int : 要搜索的進程的 ID |
filePattern | Pattern :要返回的文件名的模式 |
退貨 |
---|
Optional<List<String>> | 一個可選的過濾文件;如果找不到進程或無法讀取打開的文件,則為空。 |
投擲 |
---|
DeviceNotAvailableException | |
獲取進程名稱
public static Optional<String> getProcessName (ITestDevice device,
int pid)
從 /proc/pid/cmdline 中獲取內容。
參數 |
---|
device | ITestDevice :要使用的設備 |
pid | int : 要獲取其名稱的進程的 ID |
退貨 |
---|
Optional<String> | /proc/pid/cmdline 內容的可選字符串;如果找不到 pid,則為空 |
投擲 |
---|
DeviceNotAvailableException | |
全殺
public static boolean killAll (ITestDevice device,
String pgrepRegex,
long timeoutMs,
boolean expectExist)
將 SIGKILL 發送到匹配模式的所有進程。
參數 |
---|
device | ITestDevice :要使用的設備 |
pgrepRegex | String :表示 pgrep 正則表達式的字符串 |
timeoutMs | long :在拋出 TimeoutException 之前等待多長時間 |
expectExist | boolean : 當沒有進程被殺死時是否應該拋出異常 |
全殺
public static boolean killAll (ITestDevice device,
String pgrepRegex,
long timeoutMs)
將 SIGKILL 發送到匹配模式的所有進程。
參數 |
---|
device | ITestDevice :要使用的設備 |
pgrepRegex | String :表示 pgrep 正則表達式的字符串 |
timeoutMs | long :在拋出 TimeoutException 之前等待多長時間 |
殺死Pid
public static void killPid (ITestDevice device,
int pid,
long timeoutMs)
向進程發送 SIGKILL 並等待它退出。
參數 |
---|
device | ITestDevice :要使用的設備 |
pid | int : 等待直到退出的進程的 ID |
timeoutMs | long :在拋出 TimeoutException 之前等待多長時間 |
殺死Pid
public static void killPid (ITestDevice device,
int pid,
int signal,
long timeoutMs)
向進程發送信號並等待它退出。
參數 |
---|
device | ITestDevice :要使用的設備 |
pid | int : 等待直到退出的進程的 ID |
signal | int : 發送給進程的信號 |
timeoutMs | long :在拋出 TimeoutException 之前等待多長時間 |
列出打開的文件
public static Optional<List<String>> listOpenFiles (ITestDevice device,
int pid)
返回指定進程當前打開的文件名。
參數 |
---|
device | ITestDevice :要運行的設備 |
pid | int : 要搜索的進程的 ID |
退貨 |
---|
Optional<List<String>> | 打開文件的可選;如果找不到進程或無法讀取打開的文件,則為空。 |
投擲 |
---|
DeviceNotAvailableException | |
pidOf
public static Optional<Integer> pidOf (ITestDevice device,
String pgrepRegex)
獲取與傳遞給 `pgrep` 的模式匹配的單個 pid。當有多個 PID 匹配該模式時拋出IllegalArgumentException
。
參數 |
---|
device | ITestDevice :要使用的設備 |
pgrepRegex | String :表示 pgrep 正則表達式的字符串 |
退貨 |
---|
Optional<Integer> | pid 的可選整數;如果 pgrep 沒有返回 EXIT_SUCCESS 則為空 |
投擲 |
---|
DeviceNotAvailableException | |
IllegalArgumentException | |
pids的
public static Optional<Map<Integer, String>> pidsOf (ITestDevice device,
String pgrepRegex)
獲取與傳遞給 `pgrep` 的模式相匹配的 pids。因為 /proc/pid/comm 被截斷了,所以將 `pgrep` 與 `-f` 一起傳遞以檢查完整的命令行。
參數 |
---|
device | ITestDevice :要使用的設備 |
pgrepRegex | String :表示 pgrep 正則表達式的字符串 |
退貨 |
---|
Optional<Map<Integer, String>> | pid 到命令行的可選映射;如果 pgrep 沒有返回 EXIT_SUCCESS 則為空 |
投擲 |
---|
DeviceNotAvailableException | |
等待Pid退出
public static void waitPidExited (ITestDevice device,
int pid)
等待進程退出。這不是等待它改變,而是根本不存在。在輪詢之間重用 pid 是可能的,但不太可能
參數 |
---|
device | ITestDevice :要使用的設備 |
pid | int : 等待直到退出的進程的 ID |
等待Pid退出
public static void waitPidExited (ITestDevice device,
int pid,
long timeoutMs)
等待進程退出。這不是等待它改變,而是根本不存在。在輪詢之間重用 pid 是可能的,但不太可能
參數 |
---|
device | ITestDevice :要使用的設備 |
pid | int : 等待直到退出的進程的 ID |
timeoutMs | long :在拋出 TimeoutException 之前等待多長時間 |
等待進程運行
public static Map<Integer, String> waitProcessRunning (ITestDevice device,
String pgrepRegex,
long timeoutMs)
等到為給定的正則表達式找到正在運行的進程。
參數 |
---|
device | ITestDevice :要使用的設備 |
pgrepRegex | String :表示 pgrep 正則表達式的字符串 |
timeoutMs | long :在拋出 TimeoutException 之前等待多長時間 |
退貨 |
---|
Map<Integer, String> | 從 pidsOf(...) 到命令映射的 pid |
投擲 |
---|
TimeoutException | |
DeviceNotAvailableException | |
等待進程運行
public static Map<Integer, String> waitProcessRunning (ITestDevice device,
String pgrepRegex)
等到為給定的正則表達式找到正在運行的進程。
參數 |
---|
device | ITestDevice :要使用的設備 |
pgrepRegex | String :表示 pgrep 正則表達式的字符串 |
退貨 |
---|
Map<Integer, String> | 從 pidsOf(...) 到命令映射的 pid |
投擲 |
---|
TimeoutException | |
DeviceNotAvailableException | |
withProcessKill
public static AutoCloseable withProcessKill (ITestDevice device,
String pgrepRegex,
Runnable beforeCloseKill,
long timeoutMs)
在測試開始和結束時終止進程。
參數 |
---|
device | ITestDevice :要使用的設備 |
pgrepRegex | String : 要殺死的進程的名稱模式,以提供給 pgrep |
beforeCloseKill | Runnable :在測試結束時在正常環境中終止進程之前需要清理的任何操作的可運行。可以為空。 |
timeoutMs | long :等待進程終止的毫秒數 |
退貨 |
---|
AutoCloseable | 關閉時會再次殺死進程的對象 |
withProcessKill
public static AutoCloseable withProcessKill (ITestDevice device,
String pgrepRegex,
Runnable beforeCloseKill)
在測試開始和結束時終止進程。
參數 |
---|
device | ITestDevice :要使用的設備 |
pgrepRegex | String : 要殺死的進程的名稱模式,以提供給 pgrep |
beforeCloseKill | Runnable :在測試結束時在正常環境中終止進程之前需要清理的任何操作的可運行。可以為空。 |
退貨 |
---|
AutoCloseable | 關閉時會再次殺死進程的對象 |
這個頁面中的內容和程式碼範例均受《內容授權》中的授權所規範。Java 與 OpenJDK 是 Oracle 和/或其關係企業的商標或註冊商標。
上次更新時間:2022-11-18 (世界標準時間)。
[]
[]