獲取進(jìn)程相關(guān)的信息
說明: 本模塊首批接口從API version 7開始支持。后續(xù)版本的新增接口,采用上角標(biāo)單獨標(biāo)記接口的起始版本。 開發(fā)前請熟悉鴻蒙開發(fā)指導(dǎo)文檔 :[
gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md
]
導(dǎo)入模塊
import process from '@ohos.process';
屬性
系統(tǒng)能力: 以下各項對應(yīng)的系統(tǒng)能力均為SystemCapability.Utils.Lang。
名稱 | 類型 | 可讀 | 可寫 | 說明 |
---|---|---|---|---|
egid | number | 是 | 否 | 進(jìn)程的有效組標(biāo)識。該接口為系統(tǒng)接口,三方應(yīng)用不支持調(diào)用。 |
euid | number | 是 | 否 | 進(jìn)程的有效用戶身份。該接口為系統(tǒng)接口,三方應(yīng)用不支持調(diào)用。 |
gid | number | 是 | 否 | 進(jìn)程的組標(biāo)識。該接口為系統(tǒng)接口,三方應(yīng)用不支持調(diào)用。 |
uid | number | 是 | 否 | 進(jìn)程的用戶標(biāo)識。 |
groups | number[] | 是 | 否 | 帶有補充組id的數(shù)組。該接口為系統(tǒng)接口,三方應(yīng)用不支持調(diào)用。 |
pid | number | 是 | 否 | 當(dāng)前進(jìn)程的pid。 |
ppid | number | 是 | 否 | 當(dāng)前進(jìn)程的父進(jìn)程的pid。該接口為系統(tǒng)接口,三方應(yīng)用不支持調(diào)用。 |
tid8+ | number | 是 | 否 | 當(dāng)前進(jìn)程的tid。 |
ChildProcess
主進(jìn)程可以獲取子進(jìn)程的標(biāo)準(zhǔn)輸入輸出,以及發(fā)送信號和關(guān)閉子進(jìn)程。
屬性
系統(tǒng)能力: 以下各項對應(yīng)的系統(tǒng)能力均為SystemCapability.Utils.Lang。
名稱 | 類型 | 可讀 | 可寫 | 說明 |
---|---|---|---|---|
pid | number | 是 | 否 | 子進(jìn)程的pid。該接口為系統(tǒng)接口,三方應(yīng)用不支持調(diào)用。 |
ppid | number | 是 | 否 | 子進(jìn)程的父進(jìn)程的pid。該接口為系統(tǒng)接口,三方應(yīng)用不支持調(diào)用。 |
exitCode | number | 是 | 否 | 子進(jìn)程的退出碼。該接口為系統(tǒng)接口,三方應(yīng)用不支持調(diào)用。 |
killed | boolean | 是 | 否 | 父進(jìn)程給子進(jìn)程發(fā)信號是否成功。該接口為系統(tǒng)接口,三方應(yīng)用不支持調(diào)用。 |
wait
wait(): Promise
等待子進(jìn)程運行結(jié)束,返回promise對象,其值為子進(jìn)程的退出碼。
該接口為系統(tǒng)接口,三方應(yīng)用不支持調(diào)用。
系統(tǒng)能力: SystemCapability.Utils.Lang
返回值:
類型 | 說明 |
---|---|
Promise | 異步返回子進(jìn)程的退出碼。 |
示例:
var child = process.runCmd('ls');
var result = child.wait();
result.then(val= >{
console.log("result = " + val);
})
getOutput
getOutput(): Promise
獲取子進(jìn)程的標(biāo)準(zhǔn)輸出。
該接口為系統(tǒng)接口,三方應(yīng)用不支持調(diào)用。
系統(tǒng)能力: SystemCapability.Utils.Lang
返回值:
類型 | 說明 |
---|---|
Promise | 異步返回標(biāo)準(zhǔn)輸出的字節(jié)流。 |
示例:
var child = process.runCmd('ls');
var result = child.wait();
child.getOutput.then(val= >{
console.log("child.getOutput = " + val);
})
getErrorOutput
getErrorOutput(): Promise
獲取子進(jìn)程的標(biāo)準(zhǔn)錯誤輸出。
該接口為系統(tǒng)接口,三方應(yīng)用不支持調(diào)用。
系統(tǒng)能力: SystemCapability.Utils.Lang
返回值:
類型 | 說明 |
---|---|
Promise | 異步返回標(biāo)準(zhǔn)錯誤輸出的字節(jié)流。 |
示例:
var child = process.runCmd('madir test.text');
var result = child.wait();
child.getErrorOutput.then(val= >{
console.log("child.getErrorOutput= " + val);
})
close
close(): void
關(guān)閉正在運行的子進(jìn)程。
該接口為系統(tǒng)接口,三方應(yīng)用不支持調(diào)用。
系統(tǒng)能力: SystemCapability.Utils.Lang
示例:
var child = process.runCmd('sleep 5; ls');
child.close();
kill
kill(signal: number | string): void
用于發(fā)送信號給子進(jìn)程,結(jié)束指定進(jìn)程。
該接口為系統(tǒng)接口,三方應(yīng)用不支持調(diào)用。
系統(tǒng)能力: SystemCapability.Utils.Lang
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
signal | number | string | 是 |
示例:
var child = process.runCmd('sleep 5; ls');
child.kill(9);
process.isIsolatedProcess8+
isIsolatedProcess(): boolean
判斷進(jìn)程是否被隔離。
系統(tǒng)能力: SystemCapability.Utils.Lang
返回值:
類型 | 說明 |
---|---|
boolean | 返回判斷結(jié)果,如果返回true表示進(jìn)程被隔離。 |
示例:
var result = process.isIsolatedProcess();
process.isAppUid8+
isAppUid(v: number): boolean
判斷uid是否屬于應(yīng)用程序。
系統(tǒng)能力: SystemCapability.Utils.Lang
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
v | number | 是 | 應(yīng)用程序的uid。 |
返回值:
類型 | 說明 |
---|---|
boolean | 返回判斷結(jié)果,如果返回true表示為應(yīng)用程序的uid。 |
示例:
var result = process.isAppUid(688);
process.is64Bit8+
is64Bit(): boolean
判斷運行環(huán)境是否64位。
系統(tǒng)能力: SystemCapability.Utils.Lang
返回值:
類型 | 說明 |
---|---|
boolean | 返回判斷結(jié)果,如果返回true表示為64位環(huán)境。 |
示例:
var ressult = process.is64Bit();
process.getUidForName8+
getUidForName(v: string): number
通過進(jìn)程名獲取進(jìn)程uid。
系統(tǒng)能力: SystemCapability.Utils.Lang
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
v | string | 是 | 進(jìn)程名。 |
返回值:
類型 | 說明 |
---|---|
number | 返回進(jìn)程uid。 |
示例:
var pres = process.getUidForName("tool")
process.getThreadPriority8+
getThreadPriority(v: number): number
根據(jù)指定的tid獲取線程優(yōu)先級。
系統(tǒng)能力: SystemCapability.Utils.Lang
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
v | number | 是 | 指定的線程tid。 |
返回值:
類型 | 說明 |
---|---|
number | 返回線程的優(yōu)先級。 |
示例:
var tid = process.getTid();
var pres = process.getThreadPriority(tid);
process.getStartRealtime8+
getStartRealtime(): number
獲取從系統(tǒng)啟動到進(jìn)程啟動所經(jīng)過的實時時間(以毫秒為單位)。
系統(tǒng)能力: SystemCapability.Utils.Lang
返回值:
類型 | 說明 |
---|---|
number | 返回經(jīng)過的實時時間。 |
示例:
var realtime = process.getStartRealtime();
process.getPastCpuTime8+
getPastCpuTime(): number
獲取進(jìn)程啟動到當(dāng)前時間的CPU時間(以毫秒為單位)。
系統(tǒng)能力: SystemCapability.Utils.Lang
返回值:
類型 | 說明 |
---|---|
number | 返回經(jīng)過的CPU時間。 |
示例:
var result = process.getPastCpuTime() ;
process.getSystemConfig8+
getSystemConfig(name: number): number
獲取系統(tǒng)配置信息。
系統(tǒng)能力: SystemCapability.Utils.Lang
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
name | number | 是 | 指定系統(tǒng)配置參數(shù)名。 |
返回值:
類型 | 說明 |
---|---|
number | 返回系統(tǒng)配置信息。 |
示例:
var _SC_ARG_MAX = 0
var pres = process.getSystemConfig(_SC_ARG_MAX)
process.getEnvironmentVar8+
getEnvironmentVar(name: string): string
用該方法獲取環(huán)境變量對應(yīng)的值。
系統(tǒng)能力: SystemCapability.Utils.Lang
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
name | string | 是 | 環(huán)境變量名。 |
返回值:
類型 | 說明 |
---|---|
string | 返回環(huán)境變量名對應(yīng)的value。 |
示例:
var pres = process.getEnvironmentVar("PATH")
process.runCmd
runCmd(command: string, options?: { timeout : number, killSignal : number | string, maxBuffer : number }): ChildProcess
通過runcmd可以fork一個新的進(jìn)程來運行一段shell,并返回ChildProcess對象。
該接口為系統(tǒng)接口,三方應(yīng)用不支持調(diào)用。
系統(tǒng)能力: SystemCapability.Utils.Lang
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
command | string | 是 | shell命令。 |
options | Object | 否 | 相關(guān)選項參數(shù)。 |
表1 options
名稱 | 參數(shù)類型 | 必填 | 說明 |
---|---|---|---|
timeout | number | 否 | 子進(jìn)程運行的ms數(shù),當(dāng)子進(jìn)程運行時間超出此時間,則父進(jìn)程發(fā)送killSignal信號給子進(jìn)程。timeout默認(rèn)為0。 |
killSignal | number | string | 否 |
maxBuffer | number | 否 | 子進(jìn)程標(biāo)準(zhǔn)輸入輸出的最大緩沖區(qū)大小,當(dāng)超出此大小時則終止子進(jìn)程。maxBuffer默認(rèn)1024*1024。 |
返回值:
類型 | 說明 |
---|---|
[ChildProcess] | 子進(jìn)程對象。 |
示例:
var child = process.runCmd('ls', { maxBuffer : 2 });
var result = child.wait();
child.getOutput.then(val= >{
console.log("child.getOutput = " + val);
})
process.abort
abort(): void
該方法會導(dǎo)致進(jìn)程立即退出并生成一個核心文件,謹(jǐn)慎使用。
系統(tǒng)能力: SystemCapability.Utils.Lang
示例:
process.abort();
process.on
on(type: string, listener: EventListener): void
存儲用戶所觸發(fā)的事件。
該接口為系統(tǒng)接口,三方應(yīng)用不支持調(diào)用。
系統(tǒng)能力: SystemCapability.Utils.Lang
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
type | string | 是 | 存儲事件的type。 |
listener | EventListener | 是 | 回調(diào)的事件。 |
表2 EventListener
名稱 | 說明 |
---|---|
EventListener = (evt: Object) => void | 用戶存儲的事件。 |
示例:
process.on("data", (e)= >{
console.log("data callback");
})
process.off
off(type: string): boolean
刪除用戶存儲的事件。
該接口為系統(tǒng)接口,三方應(yīng)用不支持調(diào)用。
系統(tǒng)能力: SystemCapability.Utils.Lang
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
type | string | 是 | 刪除事件的type。 |
返回值:
類型 | 說明 |
---|---|
boolean | 事件是否刪除成功。 |
示例:
process.on("data", (e)= >{
console.log("data callback");
})
var result = process.off("data");
process.exit
exit(code: number): void
終止程序。
請謹(jǐn)慎使用此接口。
系統(tǒng)能力: SystemCapability.Utils.Lang
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
code | number | 是 | 進(jìn)程的退出碼。 |
示例:
process.exit(0);
process.cwd
cwd(): string
用該方法獲取進(jìn)程的工作目錄。
該接口為系統(tǒng)接口,三方應(yīng)用不支持調(diào)用。
系統(tǒng)能力: SystemCapability.Utils.Lang
示例:
var path = process.cwd();
process.chdir
chdir(dir: string): void
更改進(jìn)程的當(dāng)前工作目錄。
該接口為系統(tǒng)接口,三方應(yīng)用不支持調(diào)用。
系統(tǒng)能力: SystemCapability.Utils.Lang
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
dir | string | 是 | 路徑。 |
示例:
process.chdir('/system');
process.uptime
uptime(): number
獲取當(dāng)前系統(tǒng)已運行的秒數(shù)。
系統(tǒng)能力: SystemCapability.Utils.Lang
返回值:
類型 | 說明 |
---|---|
number | 當(dāng)前系統(tǒng)已運行的秒數(shù)。 |
示例:
var time = process.uptime();
process.kill
kill(signal: number, pid: number): boolean
發(fā)送signal到指定的進(jìn)程,結(jié)束指定進(jìn)程。
系統(tǒng)能力: SystemCapability.Utils.Lang
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
pid | number | 是 | 進(jìn)程的id。 |
signal | number | 是 | 發(fā)送的信號。HarmonyOS與OpenHarmony鴻蒙文檔籽料:mau123789是v直接拿 |
返回值:
類型 | 說明 |
---|---|
boolean | 信號是否發(fā)送成功。 |
示例:
var pres = process.pid
var result = that.kill(28, pres)
審核編輯 黃宇
-
鴻蒙
+關(guān)注
關(guān)注
57文章
2386瀏覽量
42962
發(fā)布評論請先 登錄
相關(guān)推薦
評論