# 获取进程相关的信息 - [导入模块](#zh-cn_topic_0000001164647334_s56d19203690d4782bfc74069abb6bd71) - [权限](#zh-cn_topic_0000001164647334_section11257113618419) - [属性](#zh-cn_topic_0000001164647334_section3317114914546) - [ChildProcess](#zh-cn_topic_0000001164647334_section6521387200) - [属性](#zh-cn_topic_0000001164647334_section18482944113517) - [wait](#zh-cn_topic_0000001164647334_section9594134194318) - [getOutput](#zh-cn_topic_0000001164647334_section1732152812716) - [getErrorOutput](#zh-cn_topic_0000001164647334_section14671040141315) - [close](#zh-cn_topic_0000001164647334_section28221257121518) - [kill](#zh-cn_topic_0000001164647334_section9528134162114) - [process.runCmd](#zh-cn_topic_0000001164647334_section19358326587) - [process.abort](#zh-cn_topic_0000001164647334_section564715329325) - [process.on](#zh-cn_topic_0000001164647334_section2394161818344) - [process.off](#zh-cn_topic_0000001164647334_section1228205293415) - [process.exit](#zh-cn_topic_0000001164647334_section114951112414) - [process.cwd](#zh-cn_topic_0000001164647334_section13686195712218) - [process.chdir](#zh-cn_topic_0000001164647334_section43111956114115) - [process.uptime](#zh-cn_topic_0000001164647334_section167881439204913) - [process.kill](#zh-cn_topic_0000001164647334_section3121181316503) >![](../../public_sys-resources/icon-note.gif) **说明:** >从 API Version 7 开始支持。 ## 导入模块 ``` import process from '@ohos.process'; ``` ## 权限 无 ## 属性

名称

类型

可读

可写

说明

getEgid

number

获取进程的数字有效组标识。

getEuid

number

获取进程的数字有效用户身份。

getGid

number

获取进程的数字组标识。

getUid

number

获取进程的数字用户标识。

getGroups

number[]

获取一个带有补充组id的数组。

getPid

number

获取当前进程的pid。

getPpid

number

获取当前进程的父进程的pid。

## ChildProcess 主进程可以获取子进程的标准输入输出,以及发送信号和关闭子进程。 ### 属性

名称

类型

可读

可写

说明

pid

number

返回子进程的pid。

ppid

number

返回子进程的父进程的pid。

exitCode

number

返回子进程的退出码。

killed

boolean

返回父进程给子进程发信号是否成功。

### wait wait\(\): Promise 等待子进程运行结束,返回promise对象,其值为子进程的退出码。 - 返回值:

类型

说明

Promise<number>

异步返回子进程的退出码。

- 示例: ``` import process from '@ohos.process'; var child = process.runCmd('ls'); var result = child.wait(); result.then(val=>{ console.log("result = " + val); }) ``` ### getOutput getOutput\(\): Promise 获取子进程的标准输出。 - 返回值:

类型

说明

Promise<Uint8Array>

异步返回标准输出的字节流。

- 示例: ``` import process from '@ohos.process'; var child = process.runCmd('ls'); var result = child.wait(); child.getOutput.then(val=>{ console.log("child.getOutput = " + val); }) ``` ### getErrorOutput getErrorOutput\(\): Promise getErrorOutput函数用来获取子进程的标准错误输出。 - 返回值:

类型

说明

Promise<Uint8Array>

异步返回标准错误输出的字节流。

- 示例: ``` import process from '@ohos.process'; var child = process.runCmd('madir test.text'); var result = child.wait(); child.getErrorOutput.then(val=>{ console.log("child.getErrorOutput= " + val); }) ``` ### close close\(\): void 关闭正在运行的子进程。 - 示例: ``` import process from '@ohos.process'; var child = process.runCmd('sleep 5; ls'); child.close(); ``` ### kill kill\(signal: number | string\): void kill函数用来发送信号给子进程。 - 参数:

参数名

类型

必填

说明

signal

number | string

数字或字符串。

- 示例: ``` import process from '@ohos.process'; var child = process.runCmd('sleep 5; ls'); child.kill(9); ``` ## process.runCmd runCmd\(command: string, options?: \{ timeout : number, killSignal :number | string, maxBuffer : number \}\) : ChildProcess 通过runcmd可以fork一个新的进程来运行一段shell,并返回ChildProcess对象。 - 参数:

参数名

类型

必填

说明

command

string

shell命令。

options

Object

相关选项参数。

**表 1** options

名称

参数类型

必填

说明

timeout

number

子进程运行的ms数,当子进程运行时间超出此时间,则父进程发送killSignal信号给子进程。timeout默认为0。

killSignal

number | string

子进程运行时间超出timeout时,父进程发送killSignal 信号给子进程。killSignal 默认为'SIGTERM'。

maxBuffer

number

子进程标准输入输出的最大缓冲区大小,当超出此大小时则终止子进程。maxBuffer默认1024*1024。

- 返回值:

类型

说明

ChildProcess

子进程对象。

- 示例: ``` import process from '@ohos.process'; var child = process.runCmd('ls', { maxBuffer : 2 }); var result = child.wait(); child.getOutput.then(val=>{ console.log("child.getOutput = " + val); } ``` ## process.abort abort\(\): void 该方法会导致进程立即退出并生成一个核心文件,谨慎使用。 - 示例: ``` import process from '@ohos.process'; process.abort(); ``` ## process.on on\(type: string, listener: EventListener\): void 用该方法来存储用户所触发的事件。 - 参数:

参数名

类型

必填

说明

type

string

存储事件的type。

listener

EventListener

回调的事件。

**表 2** EventListener

名称

说明

EventListener = (evt: Object) => void

  
- 示例: ``` import process from '@ohos.process'; process.on("data", (e)=>{ console.log("data callback); }) ``` ## process.off off\(type: string\): boolean 用该方法来删除用户存储的事件。 - 参数:

参数名

类型

必填

说明

type

string

删除事件的type。

- 返回值:

类型

说明

boolean

事件是否删除成功。

- 示例: ``` import process from '@ohos.process'; process.on("data", (e)=>{ console.log("data callback); }) var result = process.off("data"); ``` ## process.exit exit\(code: number\): void 用该方法终止程序,谨慎使用。 - 参数:

参数名

类型

必填

说明

code

number

进程的退出码。

- 示例: ``` import process from '@ohos.process'; process.exit(0); ``` ## process.cwd cwd\(\): string 用该方法获取进程的工作目录。 - 示例: ``` import process from '@ohos.process'; var path = process.cwd(); ``` ## process.chdir chdir\(dir: string\): void 用该方法更改进程的当前工作目录。 - 参数:

参数名

类型

必填

说明

dir

string

路径。

- 示例: ``` import process from '@ohos.process'; process.chdir('/system'); ``` ## process.uptime uptime\(\): number 获取当前系统已运行的秒数。 - 返回值:

类型

说明

number

当前系统已运行的秒数。

- 示例: ``` import process from '@ohos.process'; var time = process.uptime(); ``` ## process.kill kill\(pid: number,signal: number \): boolean 用该方法发送signal到指定的进程。 - 参数:

参数名

类型

必填

说明

pid

number

进程的id。

signal

number

发送的信号。

- 返回值:

类型

说明

boolean

信号是否发送成功。

- 示例: ``` import process from '@ohos.process' var pres = process.getPid var result = that.kill(pres, 28) ```