js-apis-process.md 18.6 KB
Newer Older
1
# @ohos.process (获取进程相关的信息)
Z
zengyawen 已提交
2

3 4
> **说明:**
>
Z
zengyawen 已提交
5
> 本模块首批接口从API version 7开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
Z
zengyawen 已提交
6

Z
zengyawen 已提交
7 8

## 导入模块
Z
zengyawen 已提交
9 10 11 12 13

```
import process from '@ohos.process';
```

Z
zengyawen 已提交
14 15 16

## 属性

L
lee-wen-qiang 已提交
17
**系统能力:** SystemCapability.Utils.Lang
Z
zengyawen 已提交
18

Z
zengyawen 已提交
19 20
| 名称 | 类型 | 可读 | 可写 | 说明 |
| -------- | -------- | -------- | -------- | -------- |
21 22 23
| egid | number | 是 | 否 | 进程的有效组标识。<br>**系统接口:** 此接口为系统接口。 <br>此接口仅用于对应用的测试。|
| euid | number | 是 | 否 | 进程的有效用户身份。<br>**系统接口:** 此接口为系统接口。<br>此接口仅用于对应用的测试。 |
| gid | number | 是 | 否 | 进程的组标识。<br>**系统接口:** 此接口为系统接口。<br>此接口仅用于对应用的测试。|
Z
zengyawen 已提交
24
| uid | number | 是 | 否 | 进程的用户标识。 |
25
| groups | number[] | 是 | 否 | 带有补充组id的数组。<br>**系统接口:** 此接口为系统接口。<br>此接口仅用于对应用的测试。 |
Z
zengyawen 已提交
26
| pid | number | 是 | 否 | 当前进程的pid。 |
27
| ppid | number | 是 | 否 | 当前进程的父进程的pid。<br>**系统接口:** 此接口为系统接口。<br>此接口仅用于对应用的测试。 |
28
| tid<sup>8+</sup> | number | 是 | 否 | 当前线程的tid。 |
Z
zengyawen 已提交
29 30


L
lee-wen-qiang 已提交
31
## EventListener
李_文强 已提交
32

L
lee-wen-qiang 已提交
33
系统能力: SystemCapability.Utils.Lang
李_文强 已提交
34

L
lee-wen-qiang 已提交
35 36 37
| 名称 | 说明 |
| -------- | -------- |
| EventListener&nbsp;=&nbsp;(evt: &nbsp;Object)&nbsp;=&gt;&nbsp;void | 用户存储的事件。 |
李_文强 已提交
38 39


L
lee-wen-qiang 已提交
40
## process.isIsolatedProcess<sup>8+</sup>
李_文强 已提交
41

L
lee-wen-qiang 已提交
42
isIsolatedProcess(): boolean
李_文强 已提交
43

L
lee-wen-qiang 已提交
44
判断进程是否被隔离。
李_文强 已提交
45

L
lee-wen-qiang 已提交
46
**系统能力:** SystemCapability.Utils.Lang
李_文强 已提交
47 48 49 50 51

**返回值:**

| 类型 | 说明 |
| -------- | -------- |
L
lee-wen-qiang 已提交
52
| boolean | 返回判断结果,true表示进程被隔离,false表示未被隔离。|
李_文强 已提交
53 54 55 56

**示例:**

```js
L
lee-wen-qiang 已提交
57
let result = process.isIsolatedProcess();
李_文强 已提交
58 59 60
```


L
lee-wen-qiang 已提交
61
## process.is64Bit<sup>8+</sup>
李_文强 已提交
62

L
lee-wen-qiang 已提交
63
is64Bit(): boolean
李_文强 已提交
64

L
lee-wen-qiang 已提交
65
判断运行环境是否64位。
李_文强 已提交
66 67 68 69 70 71 72

**系统能力:** SystemCapability.Utils.Lang

**返回值:**

| 类型 | 说明 |
| -------- | -------- |
L
lee-wen-qiang 已提交
73
| boolean | 返回判断结果,如果为64位环境返回true,否则返回false。|
李_文强 已提交
74 75 76 77

**示例:**

```js
L
lee-wen-qiang 已提交
78
let result = process.is64Bit();
李_文强 已提交
79 80 81
```


L
lee-wen-qiang 已提交
82
## process.getStartRealtime<sup>8+</sup>
李_文强 已提交
83

L
lee-wen-qiang 已提交
84
getStartRealtime(): number
李_文强 已提交
85

L
lee-wen-qiang 已提交
86
获取从系统启动到进程启动所经过的实时时间(以毫秒为单位)。
李_文强 已提交
87 88 89 90 91 92 93

**系统能力:** SystemCapability.Utils.Lang

**返回值:**

| 类型 | 说明 |
| -------- | -------- |
L
lee-wen-qiang 已提交
94
| number | 返回经过的实时时间。单位:毫秒|
李_文强 已提交
95 96 97 98

**示例:**

```js
L
lee-wen-qiang 已提交
99
let realtime = process.getStartRealtime();
李_文强 已提交
100 101
```

L
lee-wen-qiang 已提交
102
## process.getPastCpuTime<sup>8+</sup>
李_文强 已提交
103

L
lee-wen-qiang 已提交
104
getPastCpuTime(): number
李_文强 已提交
105

L
lee-wen-qiang 已提交
106
获取进程启动到当前时间的CPU时间(以毫秒为单位)。
李_文强 已提交
107 108 109 110 111 112 113

**系统能力:** SystemCapability.Utils.Lang

**返回值:**

| 类型 | 说明 |
| -------- | -------- |
L
lee-wen-qiang 已提交
114
| number | 返回经过的CPU时间。单位:毫秒|
李_文强 已提交
115 116 117 118

**示例:**

```js
L
lee-wen-qiang 已提交
119
let result = process.getPastCpuTime() ;
李_文强 已提交
120 121 122
```


L
lee-wen-qiang 已提交
123
## process.runCmd
李_文强 已提交
124

L
lee-wen-qiang 已提交
125
runCmd(command: string, options?: { timeout?: number, killSignal?: number | string, maxBuffer?: number }): ChildProcess
李_文强 已提交
126

L
lee-wen-qiang 已提交
127 128 129 130 131
通过runcmd可以fork一个新的进程来运行一段shell,并返回ChildProcess对象。

**系统接口:** 此接口为系统接口。

此接口仅用于对应用的测试。
李_文强 已提交
132 133 134 135 136 137 138

**系统能力:** SystemCapability.Utils.Lang

**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
L
lee-wen-qiang 已提交
139 140 141 142 143 144 145 146 147 148
| command | string | 是 | shell命令。 |
| options | Object | 否 | 相关选项参数。 |

**表1** options

| 名称 | 参数类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| timeout | number | 否 | 子进程运行的毫秒数,当子进程运行时间超出此时间,则父进程发送killSignal信号给子进程。timeout默认为0。 |
| killSignal | number&nbsp;\|&nbsp;string | 否 | 子进程运行时间超出timeout时,父进程发送killSignal&nbsp;信号给子进程。killSignal&nbsp;默认为'SIGTERM'。 |
| maxBuffer | number | 否 | 子进程标准输入输出的最大缓冲区大小,当超出此大小时则终止子进程。maxBuffer默认1024\*1024。 |
李_文强 已提交
149 150 151 152 153

**返回值:**

| 类型 | 说明 |
| -------- | -------- |
L
lee-wen-qiang 已提交
154
| [ChildProcess](#childprocess) | 子进程对象。 |
李_文强 已提交
155 156 157 158

**示例:**

```js
L
lee-wen-qiang 已提交
159 160 161 162 163
let child = process.runCmd('ls', { maxBuffer : 2 });
let result = child.wait();
child.getOutput.then(val=>{
    console.log("child.getOutput = " + val);
})
李_文强 已提交
164 165 166
```


L
lee-wen-qiang 已提交
167
## process.abort
李_文强 已提交
168

L
lee-wen-qiang 已提交
169
abort(): void
李_文强 已提交
170

L
lee-wen-qiang 已提交
171 172 173 174 175 176 177 178 179
该方法会导致进程立即退出并生成一个核心文件,谨慎使用。

**系统能力:** SystemCapability.Utils.Lang

**示例:**

```js
process.abort();
```
李_文强 已提交
180

L
lee-wen-qiang 已提交
181 182 183 184 185 186 187 188 189 190

## process.on

on(type: string, listener: EventListener): void

存储用户所触发的事件。

**系统接口:** 此接口为系统接口。

此接口仅用于对应用的测试。
李_文强 已提交
191 192 193 194 195 196 197

**系统能力:** SystemCapability.Utils.Lang

**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
L
lee-wen-qiang 已提交
198 199
| type | string | 是 | 存储事件的type。 |
| listener | [EventListener](#eventlistener) | 是 | 回调的事件。 |
李_文强 已提交
200 201 202 203

**示例:**

```js
L
lee-wen-qiang 已提交
204 205 206
process.on("data", (e)=>{
    console.log("data callback");
})
李_文强 已提交
207 208 209
```


L
lee-wen-qiang 已提交
210
## process.off
李_文强 已提交
211

L
lee-wen-qiang 已提交
212
off(type: string): boolean
李_文强 已提交
213

L
lee-wen-qiang 已提交
214 215 216 217 218
删除用户存储的事件。

**系统接口:** 此接口为系统接口。

此接口仅用于对应用的测试。
李_文强 已提交
219 220 221 222 223 224 225

**系统能力:** SystemCapability.Utils.Lang

**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
L
lee-wen-qiang 已提交
226
| type | string | 是 | 删除事件的type。 |
李_文强 已提交
227 228 229 230 231

**返回值:**

| 类型 | 说明 |
| -------- | -------- |
L
lee-wen-qiang 已提交
232
| boolean | 事件删除成功则返回true,没有成功则为false。|
李_文强 已提交
233 234 235 236

**示例:**

```js
L
lee-wen-qiang 已提交
237 238 239 240
process.on("data", (e)=>{
    console.log("data callback");
})
let result = process.off("data");
李_文强 已提交
241 242 243
```


L
lee-wen-qiang 已提交
244 245 246
## process.cwd

cwd(): string
Z
zengyawen 已提交
247

L
lee-wen-qiang 已提交
248
获取进程的工作目录。
Z
zengyawen 已提交
249

250 251
**系统接口:** 此接口为系统接口。

L
lee-wen-qiang 已提交
252
此接口仅用于对应用的测试。
Z
zengyawen 已提交
253

L
lee-wen-qiang 已提交
254
**系统能力:** SystemCapability.Utils.Lang
255

L
lee-wen-qiang 已提交
256
**返回值:**
Z
zengyawen 已提交
257

L
lee-wen-qiang 已提交
258 259 260
| 类型 | 说明 |
| -------- | -------- |
| string| 返回当前进程的工作目录。 |
Z
zengyawen 已提交
261

L
lee-wen-qiang 已提交
262
**示例:**
Z
zengyawen 已提交
263

L
lee-wen-qiang 已提交
264 265 266
```js
let path = process.cwd();
```
Z
zengyawen 已提交
267 268


L
lee-wen-qiang 已提交
269 270 271 272 273
## process.chdir

chdir(dir: string): void

更改进程的当前工作目录。
Z
zengyawen 已提交
274

275 276 277
**系统接口:** 此接口为系统接口。

此接口仅用于对应用的测试。
278

Z
zengyawen 已提交
279 280
**系统能力:** SystemCapability.Utils.Lang

L
lee-wen-qiang 已提交
281
**参数:**
Z
zengyawen 已提交
282

L
lee-wen-qiang 已提交
283 284 285
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| dir | string | 是 | 路径。 |
Z
zengyawen 已提交
286

Z
zengyawen 已提交
287 288
**示例:**

289
```js
L
lee-wen-qiang 已提交
290
process.chdir('/system');
Z
zengyawen 已提交
291
```
Z
zengyawen 已提交
292 293


L
lee-wen-qiang 已提交
294
## process.uptime
Z
zengyawen 已提交
295

L
lee-wen-qiang 已提交
296
uptime(): number
297

L
lee-wen-qiang 已提交
298
获取当前系统已运行的秒数。
299

Z
zengyawen 已提交
300 301
**系统能力:** SystemCapability.Utils.Lang

Z
zengyawen 已提交
302
**返回值:**
Z
zengyawen 已提交
303

Z
zengyawen 已提交
304 305
| 类型 | 说明 |
| -------- | -------- |
L
lee-wen-qiang 已提交
306
| number | 当前系统已运行的秒数。 |
Z
zengyawen 已提交
307 308 309

**示例:**

310
```js
L
lee-wen-qiang 已提交
311
let time = process.uptime();
Z
zengyawen 已提交
312
```
Z
zengyawen 已提交
313 314


L
lee-wen-qiang 已提交
315
## process.kill<sup>(deprecated)</sup>
Z
zengyawen 已提交
316

L
lee-wen-qiang 已提交
317
kill(signal: number, pid: number): boolean
Z
zengyawen 已提交
318

L
lee-wen-qiang 已提交
319
发送signal到指定的进程,结束指定进程。
320

L
lee-wen-qiang 已提交
321 322 323
> **说明:**
>
> 从API version 7开始支持,从API version 9开始废弃,建议使用[kill<sup>9+</sup>](#kill9)替代。
324

Z
zengyawen 已提交
325
**系统能力:** SystemCapability.Utils.Lang
Z
zengyawen 已提交
326

L
lee-wen-qiang 已提交
327 328 329 330 331 332 333
**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| pid | number | 是 | 进程的id。 |
| signal | number | 是 | 发送的信号。 |

Z
zengyawen 已提交
334 335 336 337
**返回值:**

| 类型 | 说明 |
| -------- | -------- |
L
lee-wen-qiang 已提交
338
| boolean | 信号是否发送成功。 |
Z
zengyawen 已提交
339

Z
zengyawen 已提交
340 341
**示例:**

342
```js
L
lee-wen-qiang 已提交
343 344
let pres = process.pid
let result = process.kill(28, pres)
Z
zengyawen 已提交
345
```
Z
zengyawen 已提交
346 347


L
lee-wen-qiang 已提交
348
## process.exit<sup>(deprecated)</sup>
Z
zengyawen 已提交
349

L
lee-wen-qiang 已提交
350
exit(code: number): void
Z
zengyawen 已提交
351

L
lee-wen-qiang 已提交
352
终止程序。
Z
zengyawen 已提交
353

L
lee-wen-qiang 已提交
354
请谨慎使用此接口,此接口调用后应用会退出,如果入参非0会产生数据丢失或者异常情况。
355

L
lee-wen-qiang 已提交
356 357 358
> **说明:**
>
> 从API version 7开始支持,从API version 9开始废弃,建议使用[exit<sup>9+</sup>](#exit9)替代。
359

Z
zengyawen 已提交
360 361
**系统能力:** SystemCapability.Utils.Lang

L
lee-wen-qiang 已提交
362 363 364 365 366 367
**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| code | number | 是 | 进程的退出码。 |

Z
zengyawen 已提交
368 369
**示例:**

370
```js
L
lee-wen-qiang 已提交
371
process.exit(0);
Z
zengyawen 已提交
372
```
Z
zengyawen 已提交
373 374


L
lee-wen-qiang 已提交
375
## process.getUidForName<sup>(deprecated)</sup>
Z
zengyawen 已提交
376

L
lee-wen-qiang 已提交
377
getUidForName(v: string): number
Z
zengyawen 已提交
378

L
lee-wen-qiang 已提交
379
通过进程名获取进程uid。
380

L
lee-wen-qiang 已提交
381 382 383
> **说明:**
>
> 从API version 8开始支持,从API version 9开始废弃,建议使用[getUidForName<sup>9+</sup>](#getuidforname9)替代。
384

Z
zengyawen 已提交
385
**系统能力:** SystemCapability.Utils.Lang
Z
zengyawen 已提交
386

Z
zengyawen 已提交
387 388 389 390
**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
L
lee-wen-qiang 已提交
391 392 393 394 395 396 397
| v | string | 是 | 进程名。 |

**返回值:**

| 类型 | 说明 |
| -------- | -------- |
| number | 返回进程uid。|
Z
zengyawen 已提交
398

Z
zengyawen 已提交
399 400
**示例:**

401
```js
L
lee-wen-qiang 已提交
402
let pres = process.getUidForName("tool")
Z
zengyawen 已提交
403
```
Z
zengyawen 已提交
404 405


L
lee-wen-qiang 已提交
406
## process.getThreadPriority<sup>(deprecated)</sup>
Z
zengyawen 已提交
407

L
lee-wen-qiang 已提交
408
getThreadPriority(v: number): number
Z
zengyawen 已提交
409

L
lee-wen-qiang 已提交
410 411 412 413 414
根据指定的tid获取线程优先级。

> **说明:**
>
> 从API version 8开始支持,从API version 9开始废弃,建议使用[getThreadPriority<sup>9+</sup>](#getthreadpriority9)替代。
Z
zengyawen 已提交
415

Z
zengyawen 已提交
416 417
**系统能力:** SystemCapability.Utils.Lang

L
lee-wen-qiang 已提交
418 419 420 421 422 423
**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| v | number | 是 | 指定的线程tid。 |

Z
zengyawen 已提交
424
**返回值:**
Z
zengyawen 已提交
425

Z
zengyawen 已提交
426 427
| 类型 | 说明 |
| -------- | -------- |
L
lee-wen-qiang 已提交
428
| number | 返回线程的优先级。 |
Z
zengyawen 已提交
429 430 431

**示例:**

432
```js
L
lee-wen-qiang 已提交
433 434
let tid = process.tid;
let pres = process.getThreadPriority(tid);
Z
zengyawen 已提交
435
```
Z
zengyawen 已提交
436 437


L
lee-wen-qiang 已提交
438
## process.isAppUid<sup>(deprecated)</sup>
Z
zengyawen 已提交
439

X
xdmal 已提交
440
isAppUid(v: number): boolean
Z
zengyawen 已提交
441

442
判断uid是否属于应用程序。
Z
zengyawen 已提交
443

L
lee-wen-qiang 已提交
444 445 446 447
> **说明:**
>
> 从API version 8开始支持,从API version 9开始废弃,建议使用[isAppUid<sup>9+</sup>](#isappuid9)替代。

Z
zengyawen 已提交
448 449
**系统能力:** SystemCapability.Utils.Lang

Z
zengyawen 已提交
450 451 452 453 454 455 456
**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| v | number | 是 | 应用程序的uid。 |

**返回值:**
Z
zengyawen 已提交
457

Z
zengyawen 已提交
458 459
| 类型 | 说明 |
| -------- | -------- |
L
lee-wen-qiang 已提交
460
| boolean | 返回判断结果,如果为应用程序的uid返回true,否则返回false。|
Z
zengyawen 已提交
461

Z
zengyawen 已提交
462 463
**示例:**

464
```js
465
let result = process.isAppUid(688);
Z
zengyawen 已提交
466
```
Z
zengyawen 已提交
467 468


L
lee-wen-qiang 已提交
469
## process.getSystemConfig<sup>(deprecated)</sup>
Z
zengyawen 已提交
470

L
lee-wen-qiang 已提交
471
getSystemConfig(name: number): number
Z
zengyawen 已提交
472

L
lee-wen-qiang 已提交
473 474 475 476 477
获取系统配置信息。

> **说明:**
>
> 从API version 8开始支持,从API version 9开始废弃,建议使用[getSystemConfig<sup>9+</sup>](#getsystemconfig9)替代。
Z
zengyawen 已提交
478

Z
zengyawen 已提交
479 480
**系统能力:** SystemCapability.Utils.Lang

L
lee-wen-qiang 已提交
481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551
**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| name | number | 是 | 指定系统配置参数名。 |

**返回值:**

| 类型 | 说明 |
| -------- | -------- |
| number | 返回系统配置信息。 |

**示例:**

```js
let _SC_ARG_MAX = 0
let pres = process.getSystemConfig(_SC_ARG_MAX)
```


## process.getEnvironmentVar<sup>(deprecated)</sup>

getEnvironmentVar(name: string): string

获取环境变量对应的值。

> **说明:**
>
> 从API version 8开始支持,从API version 9开始废弃,建议使用[getEnvironmentVar<sup>9+</sup>](#getenvironmentvar9)替代。

**系统能力:** SystemCapability.Utils.Lang

**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| name | string | 是 | 环境变量名。 |

**返回值:**

| 类型 | 说明 |
| -------- | -------- |
| string | 返回环境变量名对应的value。 |

**示例:**

```js
let pres = process.getEnvironmentVar("PATH")
```


## ProcessManager<sup>9+</sup>	

提供用于新增进程的抛异常接口。

通过自身的构造来获取ProcessManager对象。

### isAppUid<sup>9+</sup>

isAppUid(v: number): boolean

判断uid是否属于当前应用程序。

**系统能力:** SystemCapability.Utils.Lang

**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| v | number | 是 | 应用程序的uid。 |

Z
zengyawen 已提交
552 553 554 555
**返回值:**

| 类型 | 说明 |
| -------- | -------- |
L
lee-wen-qiang 已提交
556
| boolean | 返回判断结果,如果为应用程序的uid返回true,否则返回false。|
Z
zengyawen 已提交
557

Z
zengyawen 已提交
558 559
**示例:**

560
```js
L
lee-wen-qiang 已提交
561 562
let pro = new process.ProcessManager();
let result = pro.isAppUid(688);
Z
zengyawen 已提交
563
```
Z
zengyawen 已提交
564 565


L
lee-wen-qiang 已提交
566
### getUidForName<sup>9+</sup>
Z
zengyawen 已提交
567

X
xdmal 已提交
568
getUidForName(v: string): number
Z
zengyawen 已提交
569 570 571

通过进程名获取进程uid。

Z
zengyawen 已提交
572 573
**系统能力:** SystemCapability.Utils.Lang

Z
zengyawen 已提交
574
**参数:**
Z
zengyawen 已提交
575

Z
zengyawen 已提交
576 577 578
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| v | string | 是 | 进程名。 |
Z
zengyawen 已提交
579

Z
zengyawen 已提交
580 581 582 583 584 585 586 587
**返回值:**

| 类型 | 说明 |
| -------- | -------- |
| number | 返回进程uid。|

**示例:**

588
```js
L
lee-wen-qiang 已提交
589 590
let pro = new process.ProcessManager();
let pres = pro .getUidForName("tool");
Z
zengyawen 已提交
591
```
Z
zengyawen 已提交
592 593


L
lee-wen-qiang 已提交
594
### getThreadPriority<sup>9+</sup>
Z
zengyawen 已提交
595

X
xdmal 已提交
596
getThreadPriority(v: number): number
Z
zengyawen 已提交
597

598
根据指定的tid获取线程优先级。
Z
zengyawen 已提交
599

Z
zengyawen 已提交
600 601
**系统能力:** SystemCapability.Utils.Lang

Z
zengyawen 已提交
602 603 604 605 606
**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| v | number | 是 | 指定的线程tid。 |
Z
zengyawen 已提交
607

Z
zengyawen 已提交
608
**返回值:**
Z
zengyawen 已提交
609

Z
zengyawen 已提交
610 611 612 613 614 615
| 类型 | 说明 |
| -------- | -------- |
| number | 返回线程的优先级。 |

**示例:**

616
```js
L
lee-wen-qiang 已提交
617
let pro = new process.ProcessManager();
618
let tid = process.tid;
L
lee-wen-qiang 已提交
619
let pres = pro.getThreadPriority(tid);
Z
zengyawen 已提交
620
```
Z
zengyawen 已提交
621 622


L
lee-wen-qiang 已提交
623
### getSystemConfig<sup>9+</sup>
Z
zengyawen 已提交
624

L
lee-wen-qiang 已提交
625
getSystemConfig(name: number): number
Z
zengyawen 已提交
626

L
lee-wen-qiang 已提交
627
获取系统配置信息。
Z
zengyawen 已提交
628

Z
zengyawen 已提交
629 630
**系统能力:** SystemCapability.Utils.Lang

L
lee-wen-qiang 已提交
631
**参数:**
Z
zengyawen 已提交
632

L
lee-wen-qiang 已提交
633 634 635
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| name | number | 是 | 指定系统配置参数名。 |
Z
zengyawen 已提交
636

Z
zengyawen 已提交
637 638 639 640
**返回值:**

| 类型 | 说明 |
| -------- | -------- |
L
lee-wen-qiang 已提交
641
| number | 返回系统配置信息。 |
Z
zengyawen 已提交
642 643

**示例:**
Z
zengyawen 已提交
644

645
```js
L
lee-wen-qiang 已提交
646 647 648
let pro = new process.ProcessManager();
let _SC_ARG_MAX = 0;
let pres = pro.getSystemConfig(_SC_ARG_MAX);
Z
zengyawen 已提交
649
```
Z
zengyawen 已提交
650 651


L
lee-wen-qiang 已提交
652
### getEnvironmentVar<sup>9+</sup>
Z
zengyawen 已提交
653

L
lee-wen-qiang 已提交
654
getEnvironmentVar(name: string): string
Z
zengyawen 已提交
655

L
lee-wen-qiang 已提交
656
获取环境变量对应的值。
Z
zengyawen 已提交
657

Z
zengyawen 已提交
658 659
**系统能力:** SystemCapability.Utils.Lang

Z
zengyawen 已提交
660 661 662 663
**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
L
lee-wen-qiang 已提交
664
| name | string | 是 | 环境变量名。 |
Z
zengyawen 已提交
665

Z
zengyawen 已提交
666
**返回值:**
Z
zengyawen 已提交
667

Z
zengyawen 已提交
668 669
| 类型 | 说明 |
| -------- | -------- |
L
lee-wen-qiang 已提交
670
| string | 返回环境变量名对应的值。 |
Z
zengyawen 已提交
671 672 673

**示例:**

674
```js
L
lee-wen-qiang 已提交
675 676
let pro = new process.ProcessManager();
let pres = pro.getEnvironmentVar("PATH");
Z
zengyawen 已提交
677
```
Z
zengyawen 已提交
678 679


L
lee-wen-qiang 已提交
680
### exit<sup>9+</sup>
Z
zengyawen 已提交
681

L
lee-wen-qiang 已提交
682 683 684
exit(code: number): void

终止程序。
Z
zengyawen 已提交
685

L
lee-wen-qiang 已提交
686
请谨慎使用此接口,此接口调用后应用会退出,如果入参非0会产生数据丢失或者异常情况。
Z
zengyawen 已提交
687

Z
zengyawen 已提交
688 689
**系统能力:** SystemCapability.Utils.Lang

Z
zengyawen 已提交
690
**参数:**
Z
zengyawen 已提交
691

Z
zengyawen 已提交
692 693
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
L
lee-wen-qiang 已提交
694
| code | number | 是 | 进程的退出码。 |
Z
zengyawen 已提交
695 696 697

**示例:**

698
```js
L
lee-wen-qiang 已提交
699 700
let pro = new process.ProcessManager();
pro.exit(0);
Z
zengyawen 已提交
701
```
Z
zengyawen 已提交
702 703


L
lee-wen-qiang 已提交
704
### kill<sup>9+</sup>
Z
zengyawen 已提交
705

L
lee-wen-qiang 已提交
706
kill(signal: number, pid: number): boolean
707

L
lee-wen-qiang 已提交
708
发送signal到指定的进程,结束指定进程。
709

Z
zengyawen 已提交
710 711
**系统能力:** SystemCapability.Utils.Lang

Z
zengyawen 已提交
712 713 714 715
**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
L
lee-wen-qiang 已提交
716 717
| pid | number | 是 | 进程的id。 |
| signal | number | 是 | 发送的信号。 |
Z
zengyawen 已提交
718 719 720 721 722

**返回值:**

| 类型 | 说明 |
| -------- | -------- |
L
lee-wen-qiang 已提交
723
| boolean | 信号是否发送成功。 |
Z
zengyawen 已提交
724 725 726

**示例:**

727
```js
L
lee-wen-qiang 已提交
728 729 730
let pro = new process.ProcessManager();
let pres = process.pid;
let result = pro.kill(28, pres);
Z
zengyawen 已提交
731
```
Z
zengyawen 已提交
732 733


L
lee-wen-qiang 已提交
734
## ChildProcess
Z
zengyawen 已提交
735

L
lee-wen-qiang 已提交
736
ChildProcess对象为创建的新的子进程,主进程可以获取子进程的标准输入输出,以及发送信号和关闭子进程,可以通过[process.runCmd](#processruncmd)获取ChildProcess对象。
Z
zengyawen 已提交
737

L
lee-wen-qiang 已提交
738
**系统接口:** 此接口为系统接口。
Z
zengyawen 已提交
739

L
lee-wen-qiang 已提交
740
### 属性
Z
zengyawen 已提交
741

L
lee-wen-qiang 已提交
742
**系统接口:** 此接口为系统接口。
Z
zengyawen 已提交
743

L
lee-wen-qiang 已提交
744 745 746 747 748 749 750 751
**系统能力:** SystemCapability.Utils.Lang

| 名称 | 类型 | 可读 | 可写 | 说明 |
| -------- | -------- | -------- | -------- | -------- |
| pid | number | 是 | 否 | 子进程的pid。<br>**系统接口:** 此接口为系统接口。<br>此接口仅用于对应用的测试。 |
| ppid | number | 是 | 否 | 子进程的父进程的pid。<br>**系统接口:** 此接口为系统接口。<br>此接口仅用于对应用的测试。 |
| exitCode | number | 是 | 否 | 子进程的退出码。<br>**系统接口:** 此接口为系统接口。 <br>此接口仅用于对应用的测试。|
| killed | boolean | 是 | 否 | 父进程给子进程发信号是否成功。<br>**系统接口:** 此接口为系统接口。<br>此接口仅用于对应用的测试。 |
Z
zengyawen 已提交
752 753


L
lee-wen-qiang 已提交
754
### wait
Z
zengyawen 已提交
755

L
lee-wen-qiang 已提交
756
wait(): Promise&lt;number&gt;
Z
zengyawen 已提交
757

L
lee-wen-qiang 已提交
758
等待子进程运行结束,返回promise对象,其值为子进程的退出码。
Z
zengyawen 已提交
759

760 761 762
**系统接口:** 此接口为系统接口。

此接口仅用于对应用的测试。
763

Z
zengyawen 已提交
764
**系统能力:** SystemCapability.Utils.Lang
Z
zengyawen 已提交
765

L
lee-wen-qiang 已提交
766
**返回值:**
Z
zengyawen 已提交
767

L
lee-wen-qiang 已提交
768
| 类型 | 说明 |
Z
zengyawen 已提交
769
| -------- | -------- |
L
lee-wen-qiang 已提交
770
| Promise&lt;number&gt; | 异步返回子进程的退出码。 |
Z
zengyawen 已提交
771

Z
zengyawen 已提交
772 773
**示例:**

774
```js
L
lee-wen-qiang 已提交
775 776 777 778
let child = process.runCmd('ls');
let result = child.wait();
result.then(val=>{
    console.log("result = " + val);
Z
zengyawen 已提交
779 780
})
```
Z
zengyawen 已提交
781 782


L
lee-wen-qiang 已提交
783
### getOutput
Z
zengyawen 已提交
784

L
lee-wen-qiang 已提交
785
getOutput(): Promise&lt;Uint8Array&gt;
Z
zengyawen 已提交
786

L
lee-wen-qiang 已提交
787
获取子进程的标准输出。
Z
zengyawen 已提交
788

789 790 791
**系统接口:** 此接口为系统接口。

此接口仅用于对应用的测试。
792

Z
zengyawen 已提交
793
**系统能力:** SystemCapability.Utils.Lang
Z
zengyawen 已提交
794

Z
zengyawen 已提交
795 796 797 798
**返回值:**

| 类型 | 说明 |
| -------- | -------- |
L
lee-wen-qiang 已提交
799
| Promise&lt;Uint8Array&gt; | 异步返回标准输出的字节流。 |
Z
zengyawen 已提交
800 801 802

**示例:**

803
```js
L
lee-wen-qiang 已提交
804 805 806 807
let child = process.runCmd('ls');
let result = child.wait();
child.getOutput().then(val=>{
    console.log("child.getOutput = " + val);
Z
zengyawen 已提交
808 809
})
```
Z
zengyawen 已提交
810 811


L
lee-wen-qiang 已提交
812
### getErrorOutput
Z
zengyawen 已提交
813

L
lee-wen-qiang 已提交
814
getErrorOutput(): Promise&lt;Uint8Array&gt;
Z
zengyawen 已提交
815

L
lee-wen-qiang 已提交
816 817 818
获取子进程的标准错误输出。

**系统接口:** 此接口为系统接口。
Z
zengyawen 已提交
819

L
lee-wen-qiang 已提交
820
此接口仅用于对应用的测试。
Z
zengyawen 已提交
821 822

**系统能力:** SystemCapability.Utils.Lang
Z
zengyawen 已提交
823

L
lee-wen-qiang 已提交
824
**返回值:**
Z
zengyawen 已提交
825

L
lee-wen-qiang 已提交
826 827 828
| 类型 | 说明 |
| -------- | -------- |
| Promise&lt;Uint8Array&gt; | 异步返回标准错误输出的字节流。 |
Z
zengyawen 已提交
829 830 831

**示例:**

832
```js
L
lee-wen-qiang 已提交
833 834 835 836 837
let child = process.runCmd('madir test.text');
let result = child.wait();
child.getErrorOutput().then(val=>{
    console.log("child.getErrorOutput= " + val);
})
Z
zengyawen 已提交
838
```
Z
zengyawen 已提交
839 840


L
lee-wen-qiang 已提交
841
### close
Z
zengyawen 已提交
842

L
lee-wen-qiang 已提交
843
close(): void
Z
zengyawen 已提交
844

L
lee-wen-qiang 已提交
845
关闭正在运行的子进程。
Z
zengyawen 已提交
846

847 848 849
**系统接口:** 此接口为系统接口。

此接口仅用于对应用的测试。
850

Z
zengyawen 已提交
851 852
**系统能力:** SystemCapability.Utils.Lang

Z
zengyawen 已提交
853 854
**示例:**

855
```js
L
lee-wen-qiang 已提交
856 857
let child = process.runCmd('sleep 5; ls');
child.close();
Z
zengyawen 已提交
858
```
Z
zengyawen 已提交
859 860


L
lee-wen-qiang 已提交
861
### kill
Z
zengyawen 已提交
862

L
lee-wen-qiang 已提交
863
kill(signal: number | string): void
Z
zengyawen 已提交
864

L
lee-wen-qiang 已提交
865
用于发送信号给子进程,结束指定进程。
Z
zengyawen 已提交
866

867 868 869
**系统接口:** 此接口为系统接口。

此接口仅用于对应用的测试。
870

Z
zengyawen 已提交
871
**系统能力:** SystemCapability.Utils.Lang
Z
zengyawen 已提交
872

Z
zengyawen 已提交
873 874 875 876
**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
L
lee-wen-qiang 已提交
877
| signal | number&nbsp;\|&nbsp;string | 是 | 数字或字符串。 |
Z
zengyawen 已提交
878 879

**示例:**
880 881

```js
L
lee-wen-qiang 已提交
882 883
let child = process.runCmd('sleep 5; ls');
child.kill(9);
Z
zengyawen 已提交
884
```