# 获取进程相关的信息
- [导入模块](#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)
> **说明:**
>从 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。
|
- 返回值:
- 示例:
```
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。
|
- 返回值:
- 示例:
```
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
获取当前系统已运行的秒数。
- 返回值:
- 示例:
```
import process from '@ohos.process';
var time = process.uptime();
```
## process.kill
kill\(pid: number,signal: number \): boolean
用该方法发送signal到指定的进程。
- 参数:
参数名
|
类型
|
必填
|
说明
|
pid
|
number
|
是
|
进程的id。
|
signal
|
number
|
是
|
发送的信号。
|
- 返回值:
- 示例:
```
import process from '@ohos.process'
var pres = process.getPid
var result = that.kill(pres, 28)
```