js-apis-process.md 17.0 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

## 属性

Z
zengyawen 已提交
17 18
**系统能力:** 以下各项对应的系统能力均为SystemCapability.Utils.Lang。

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>此接口仅用于对应用的测试。 |
Z
zengyawen 已提交
28
| tid<sup>8+</sup> | number | 是 | 否 | 当前进程的tid。 |
Z
zengyawen 已提交
29 30


李_文强 已提交
31 32 33 34
## ProcessManager<sup>9+</sup>	

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

35
### isAppUid<sup>9+</sup>
李_文强 已提交
36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62

isAppUid(v: number): boolean

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

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

**参数:**

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

**返回值:**

| 类型 | 说明 |
| -------- | -------- |
| boolean | 返回判断结果,如果返回true表示为应用程序的uid。|

**示例:**

```js
let pro = new process.ProcessManager();
let result = pro.isAppUid(688);
```


63
### getUidForName<sup>9+</sup>
李_文强 已提交
64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90

getUidForName(v: string): number

通过进程名获取进程uid。

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

**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| v | string | 是 | 进程名。 |

**返回值:**

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

**示例:**

```js
let pro = new process.ProcessManager();
let pres = pro .getUidForName("tool");
```


91
### getThreadPriority<sup>9+</sup>
李_文强 已提交
92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119

getThreadPriority(v: number): number

根据指定的tid获取线程优先级。

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

**参数:**

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

**返回值:**

| 类型 | 说明 |
| -------- | -------- |
| number | 返回线程的优先级。 |

**示例:**

```js
let pro = new process.ProcessManager();
let tid = process.tid;
let pres = pro.getThreadPriority(tid);
```


120
### getSystemConfig<sup>9+</sup>
李_文强 已提交
121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148

getSystemConfig(name: number): number

获取系统配置信息。

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

**参数:**

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

**返回值:**

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

**示例:**

```js
let pro = new process.ProcessManager();
let _SC_ARG_MAX = 0;
let pres = pro.getSystemConfig(_SC_ARG_MAX);
```


149
### getEnvironmentVar<sup>9+</sup>
李_文强 已提交
150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176

getEnvironmentVar(name: string): string

用该方法获取环境变量对应的值。

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

**参数:**

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

**返回值:**

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

**示例:**

```js
let pro = new process.ProcessManager();
let pres = pro.getEnvironmentVar("PATH");
```


177
### exit<sup>9+</sup>
李_文强 已提交
178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200

exit(code: number): void

终止程序。

请谨慎使用此接口。

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

**参数:**

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

**示例:**

```js
let pro = new process.ProcessManager();
pro.exit(0);
```


201
### kill<sup>9+</sup>
李_文强 已提交
202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230

kill(signal: number, pid: number): boolean

发送signal到指定的进程,结束指定进程。

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

**参数:**

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

**返回值:**

| 类型 | 说明 |
| -------- | -------- |
| boolean | 信号是否发送成功。 |

**示例:**

```js
let pro = new process.ProcessManager();
let pres = process.pid;
let result = pro.kill(28, pres);
```


Z
zengyawen 已提交
231
## ChildProcess
Z
zengyawen 已提交
232 233 234

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

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

Z
zengyawen 已提交
237
### 属性
Z
zengyawen 已提交
238

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

Z
zengyawen 已提交
241 242
**系统能力:** 以下各项对应的系统能力均为SystemCapability.Utils.Lang。

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


Z
zengyawen 已提交
251
### wait
Z
zengyawen 已提交
252

Z
zengyawen 已提交
253
wait(): Promise&lt;number&gt;
Z
zengyawen 已提交
254

Z
zengyawen 已提交
255
等待子进程运行结束,返回promise对象,其值为子进程的退出码。
Z
zengyawen 已提交
256

257 258 259
**系统接口:** 此接口为系统接口。

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

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

Z
zengyawen 已提交
263 264 265 266 267
**返回值:**

| 类型 | 说明 |
| -------- | -------- |
| Promise&lt;number&gt; | 异步返回子进程的退出码。 |
Z
zengyawen 已提交
268

Z
zengyawen 已提交
269 270
**示例:**

271
```js
272 273
let child = process.runCmd('ls');
let result = child.wait();
Z
zengyawen 已提交
274 275 276 277
result.then(val=>{
    console.log("result = " + val);
})
```
Z
zengyawen 已提交
278 279


Z
zengyawen 已提交
280
### getOutput
Z
zengyawen 已提交
281

Z
zengyawen 已提交
282 283 284
getOutput(): Promise&lt;Uint8Array&gt;

获取子进程的标准输出。
Z
zengyawen 已提交
285

286 287 288
**系统接口:** 此接口为系统接口。

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

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

Z
zengyawen 已提交
292
**返回值:**
Z
zengyawen 已提交
293

Z
zengyawen 已提交
294 295 296 297 298 299
| 类型 | 说明 |
| -------- | -------- |
| Promise&lt;Uint8Array&gt; | 异步返回标准输出的字节流。 |

**示例:**

300
```js
301 302
let child = process.runCmd('ls');
let result = child.wait();
S
shikai-123 已提交
303
child.getOutput().then(val=>{
Z
zengyawen 已提交
304 305 306
    console.log("child.getOutput = " + val);
})
```
Z
zengyawen 已提交
307 308


Z
zengyawen 已提交
309
### getErrorOutput
Z
zengyawen 已提交
310

Z
zengyawen 已提交
311
getErrorOutput(): Promise&lt;Uint8Array&gt;
Z
zengyawen 已提交
312

Z
zengyawen 已提交
313 314
获取子进程的标准错误输出。

315 316 317
**系统接口:** 此接口为系统接口。

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

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

Z
zengyawen 已提交
321 322 323 324 325
**返回值:**

| 类型 | 说明 |
| -------- | -------- |
| Promise&lt;Uint8Array&gt; | 异步返回标准错误输出的字节流。 |
Z
zengyawen 已提交
326

Z
zengyawen 已提交
327 328
**示例:**

329
```js
330 331
let child = process.runCmd('madir test.text');
let result = child.wait();
S
shikai-123 已提交
332
child.getErrorOutput().then(val=>{
Z
zengyawen 已提交
333 334 335
    console.log("child.getErrorOutput= " + val);
})
```
Z
zengyawen 已提交
336 337


Z
zengyawen 已提交
338
### close
Z
zengyawen 已提交
339

X
xdmal 已提交
340
close(): void
Z
zengyawen 已提交
341

Z
zengyawen 已提交
342
关闭正在运行的子进程。
Z
zengyawen 已提交
343

344 345 346
**系统接口:** 此接口为系统接口。

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

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

Z
zengyawen 已提交
350 351
**示例:**

352
```js
353
let child = process.runCmd('sleep 5; ls');
Z
zengyawen 已提交
354 355
child.close();
```
Z
zengyawen 已提交
356 357


Z
zengyawen 已提交
358
### kill
Z
zengyawen 已提交
359

Z
zengyawen 已提交
360
kill(signal: number | string): void
Z
zengyawen 已提交
361

Z
zengyawen 已提交
362 363
用于发送信号给子进程,结束指定进程。

364 365 366
**系统接口:** 此接口为系统接口。

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

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

Z
zengyawen 已提交
370 371 372 373 374
**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| signal | number&nbsp;\|&nbsp;string | 是 | 数字或字符串。 |
Z
zengyawen 已提交
375

Z
zengyawen 已提交
376 377
**示例:**

378
```js
379
let child = process.runCmd('sleep 5; ls');
Z
zengyawen 已提交
380 381
child.kill(9);
```
Z
zengyawen 已提交
382 383


Z
zengyawen 已提交
384 385 386 387
## process.isIsolatedProcess<sup>8+</sup>

isIsolatedProcess(): boolean

388
判断进程是否被隔离。
Z
zengyawen 已提交
389

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

Z
zengyawen 已提交
392
**返回值:**
Z
zengyawen 已提交
393

Z
zengyawen 已提交
394 395 396 397 398 399
| 类型 | 说明 |
| -------- | -------- |
| boolean | 返回判断结果,如果返回true表示进程被隔离。 |

**示例:**

400
```js
401
let result = process.isIsolatedProcess();
Z
zengyawen 已提交
402
```
Z
zengyawen 已提交
403 404 405 406


## process.isAppUid<sup>8+</sup>

X
xdmal 已提交
407
isAppUid(v: number): boolean
Z
zengyawen 已提交
408

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

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

Z
zengyawen 已提交
413 414 415 416 417 418 419
**参数:**

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

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

Z
zengyawen 已提交
421 422 423
| 类型 | 说明 |
| -------- | -------- |
| boolean | 返回判断结果,如果返回true表示为应用程序的uid。|
Z
zengyawen 已提交
424

Z
zengyawen 已提交
425 426
**示例:**

427
```js
428
let result = process.isAppUid(688);
Z
zengyawen 已提交
429
```
Z
zengyawen 已提交
430 431 432 433 434 435


## process.is64Bit<sup>8+</sup>

is64Bit(): boolean

436
判断运行环境是否64位。
Z
zengyawen 已提交
437

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

Z
zengyawen 已提交
440 441 442 443 444
**返回值:**

| 类型 | 说明 |
| -------- | -------- |
| boolean | 返回判断结果,如果返回true表示为64位环境。 |
Z
zengyawen 已提交
445

Z
zengyawen 已提交
446 447
**示例:**

448
```js
449
let result = process.is64Bit();
Z
zengyawen 已提交
450
```
Z
zengyawen 已提交
451 452 453 454


## process.getUidForName<sup>8+</sup>

X
xdmal 已提交
455
getUidForName(v: string): number
Z
zengyawen 已提交
456 457 458

通过进程名获取进程uid。

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

Z
zengyawen 已提交
461
**参数:**
Z
zengyawen 已提交
462

Z
zengyawen 已提交
463 464 465
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| v | string | 是 | 进程名。 |
Z
zengyawen 已提交
466

Z
zengyawen 已提交
467 468 469 470 471 472 473 474
**返回值:**

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

**示例:**

475
```js
476
let pres = process.getUidForName("tool")
Z
zengyawen 已提交
477
```
Z
zengyawen 已提交
478 479 480 481


## process.getThreadPriority<sup>8+</sup>

X
xdmal 已提交
482
getThreadPriority(v: number): number
Z
zengyawen 已提交
483

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

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

Z
zengyawen 已提交
488 489 490 491 492
**参数:**

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

Z
zengyawen 已提交
494
**返回值:**
Z
zengyawen 已提交
495

Z
zengyawen 已提交
496 497 498 499 500 501
| 类型 | 说明 |
| -------- | -------- |
| number | 返回线程的优先级。 |

**示例:**

502
```js
503 504
let tid = process.tid;
let pres = process.getThreadPriority(tid);
Z
zengyawen 已提交
505
```
Z
zengyawen 已提交
506 507 508 509


## process.getStartRealtime<sup>8+</sup>

X
xdmal 已提交
510
getStartRealtime(): number
Z
zengyawen 已提交
511 512 513

获取从系统启动到进程启动所经过的实时时间(以毫秒为单位)。

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

Z
zengyawen 已提交
516
**返回值:**
Z
zengyawen 已提交
517

Z
zengyawen 已提交
518 519 520 521 522 523
| 类型 | 说明 |
| -------- | -------- |
| number | 返回经过的实时时间。|

**示例:**

524
```js
525
let realtime = process.getStartRealtime();
Z
zengyawen 已提交
526
```
Z
zengyawen 已提交
527

Z
zengyawen 已提交
528
## process.getPastCpuTime<sup>8+</sup>
Z
zengyawen 已提交
529

Z
zengyawen 已提交
530
getPastCpuTime(): number
Z
zengyawen 已提交
531 532 533

获取进程启动到当前时间的CPU时间(以毫秒为单位)。

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

Z
zengyawen 已提交
536 537 538 539 540 541 542
**返回值:**

| 类型 | 说明 |
| -------- | -------- |
| number | 返回经过的CPU时间。 |

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

544
```js
545
let result = process.getPastCpuTime() ;
Z
zengyawen 已提交
546
```
Z
zengyawen 已提交
547 548 549 550


## process.getSystemConfig<sup>8+</sup>

X
xdmal 已提交
551
getSystemConfig(name: number): number
Z
zengyawen 已提交
552

Z
zengyawen 已提交
553
获取系统配置信息。
Z
zengyawen 已提交
554

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

Z
zengyawen 已提交
557 558 559 560 561
**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| name | number | 是 | 指定系统配置参数名。 |
Z
zengyawen 已提交
562

Z
zengyawen 已提交
563
**返回值:**
Z
zengyawen 已提交
564

Z
zengyawen 已提交
565 566 567 568 569 570
| 类型 | 说明 |
| -------- | -------- |
| number | 返回系统配置信息。 |

**示例:**

571
```js
572 573
let _SC_ARG_MAX = 0
let pres = process.getSystemConfig(_SC_ARG_MAX)
Z
zengyawen 已提交
574
```
Z
zengyawen 已提交
575 576 577 578


## process.getEnvironmentVar<sup>8+</sup>

X
xdmal 已提交
579
getEnvironmentVar(name: string): string
Z
zengyawen 已提交
580 581 582

用该方法获取环境变量对应的值。

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

Z
zengyawen 已提交
585
**参数:**
Z
zengyawen 已提交
586

Z
zengyawen 已提交
587 588 589
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| name | string | 是 | 环境变量名。 |
Z
zengyawen 已提交
590

Z
zengyawen 已提交
591 592 593 594 595 596 597 598
**返回值:**

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

**示例:**

599
```js
600
let pres = process.getEnvironmentVar("PATH")
Z
zengyawen 已提交
601
```
Z
zengyawen 已提交
602 603


Z
zengyawen 已提交
604 605
## process.runCmd

606
runCmd(command: string, options?: { timeout?: number, killSignal?: number | string, maxBuffer?: number }): ChildProcess
Z
zengyawen 已提交
607 608 609

通过runcmd可以fork一个新的进程来运行一段shell,并返回ChildProcess对象。

610 611 612
**系统接口:** 此接口为系统接口。

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

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

Z
zengyawen 已提交
616 617 618 619 620 621 622 623 624 625 626 627
**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| command | string | 是 | shell命令。 |
| options | Object | 否 | 相关选项参数。 |

**表1** options

| 名称 | 参数类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| timeout | number | 否 | 子进程运行的ms数,当子进程运行时间超出此时间,则父进程发送killSignal信号给子进程。timeout默认为0。 |
628
| killSignal | number&nbsp;\|&nbsp;string | 否 | 子进程运行时间超出timeout时,父进程发送killSignal&nbsp;信号给子进程。killSignal&nbsp;默认为'SIGTERM'。 |
Z
zengyawen 已提交
629 630 631 632 633 634 635 636 637 638
| maxBuffer | number | 否 | 子进程标准输入输出的最大缓冲区大小,当超出此大小时则终止子进程。maxBuffer默认1024\*1024。 |

**返回值:**

| 类型 | 说明 |
| -------- | -------- |
| [ChildProcess](#childprocess) | 子进程对象。 |

**示例:**

639
```js
640 641
let child = process.runCmd('ls', { maxBuffer : 2 });
let result = child.wait();
Z
zengyawen 已提交
642 643 644 645
child.getOutput.then(val=>{
    console.log("child.getOutput = " + val);
})
```
Z
zengyawen 已提交
646 647 648


## process.abort
Z
zengyawen 已提交
649

Z
zengyawen 已提交
650
abort(): void
Z
zengyawen 已提交
651

Z
zengyawen 已提交
652 653
该方法会导致进程立即退出并生成一个核心文件,谨慎使用。

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

Z
zengyawen 已提交
656 657
**示例:**

658
```js
Z
zengyawen 已提交
659 660
process.abort();
```
Z
zengyawen 已提交
661 662


Z
zengyawen 已提交
663
## process.on
Z
zengyawen 已提交
664

Z
zengyawen 已提交
665
on(type: string, listener: EventListener): void
Z
zengyawen 已提交
666

Z
zengyawen 已提交
667 668
存储用户所触发的事件。

669 670 671
**系统接口:** 此接口为系统接口。

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

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

Z
zengyawen 已提交
675 676 677 678 679 680 681 682
**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| type | string | 是 | 存储事件的type。 |
| listener | EventListener | 是 | 回调的事件。 |

**表2** EventListener
Z
zengyawen 已提交
683

Z
zengyawen 已提交
684 685
| 名称 | 说明 |
| -------- | -------- |
X
xdmal 已提交
686
| EventListener&nbsp;=&nbsp;(evt: &nbsp;Object)&nbsp;=&gt;&nbsp;void | 用户存储的事件。 |
Z
zengyawen 已提交
687

Z
zengyawen 已提交
688 689
**示例:**

690
```js
Z
zengyawen 已提交
691 692 693 694
process.on("data", (e)=>{
    console.log("data callback");
})
```
Z
zengyawen 已提交
695 696 697 698 699


## process.off

off(type: string): boolean
Z
zengyawen 已提交
700

Z
zengyawen 已提交
701 702
删除用户存储的事件。

703 704 705
**系统接口:** 此接口为系统接口。

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

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

Z
zengyawen 已提交
709
**参数:**
Z
zengyawen 已提交
710

Z
zengyawen 已提交
711 712 713
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| type | string | 是 | 删除事件的type。 |
Z
zengyawen 已提交
714

Z
zengyawen 已提交
715 716 717 718 719 720 721 722
**返回值:**

| 类型 | 说明 |
| -------- | -------- |
| boolean | 事件是否删除成功。 |

**示例:**

723
```js
Z
zengyawen 已提交
724 725 726
process.on("data", (e)=>{
    console.log("data callback");
})
727
let result = process.off("data");
Z
zengyawen 已提交
728
```
Z
zengyawen 已提交
729 730 731 732 733


## process.exit

exit(code: number): void
Z
zengyawen 已提交
734

Z
zengyawen 已提交
735 736 737 738 739
终止程序。

请谨慎使用此接口。

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

Z
zengyawen 已提交
741
**参数:**
Z
zengyawen 已提交
742

Z
zengyawen 已提交
743 744 745 746 747 748
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| code | number | 是 | 进程的退出码。 |

**示例:**

749
```js
Z
zengyawen 已提交
750 751
process.exit(0);
```
Z
zengyawen 已提交
752 753 754 755 756


## process.cwd

cwd(): string
Z
zengyawen 已提交
757

Z
zengyawen 已提交
758
用该方法获取进程的工作目录。
Z
zengyawen 已提交
759

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

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

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

Z
zengyawen 已提交
766 767
**示例:**

768
```js
769
let path = process.cwd();
Z
zengyawen 已提交
770
```
Z
zengyawen 已提交
771 772


Z
zengyawen 已提交
773
## process.chdir
Z
zengyawen 已提交
774

Z
zengyawen 已提交
775
chdir(dir: string): void
Z
zengyawen 已提交
776

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

779 780 781
**系统接口:** 此接口为系统接口。

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

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

Z
zengyawen 已提交
785 786 787 788 789
**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| dir | string | 是 | 路径。 |
Z
zengyawen 已提交
790

Z
zengyawen 已提交
791 792
**示例:**

793
```js
Z
zengyawen 已提交
794 795
process.chdir('/system');
```
Z
zengyawen 已提交
796 797


Z
zengyawen 已提交
798
## process.uptime
Z
zengyawen 已提交
799

Z
zengyawen 已提交
800
uptime(): number
Z
zengyawen 已提交
801

Z
zengyawen 已提交
802
获取当前系统已运行的秒数。
Z
zengyawen 已提交
803

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

Z
zengyawen 已提交
806 807 808 809 810
**返回值:**

| 类型 | 说明 |
| -------- | -------- |
| number | 当前系统已运行的秒数。 |
Z
zengyawen 已提交
811

Z
zengyawen 已提交
812 813
**示例:**

814
```js
815
let time = process.uptime();
Z
zengyawen 已提交
816
```
Z
zengyawen 已提交
817 818


Z
zengyawen 已提交
819
## process.kill
Z
zengyawen 已提交
820

S
shikai-123 已提交
821
kill(signal: number, pid: number): boolean
Z
zengyawen 已提交
822

Z
zengyawen 已提交
823 824 825
发送signal到指定的进程,结束指定进程。

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

Z
zengyawen 已提交
827 828 829 830 831 832 833 834 835 836 837 838 839 840
**参数:**

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

**返回值:**

| 类型 | 说明 |
| -------- | -------- |
| boolean | 信号是否发送成功。 |

**示例:**
841 842

```js
843 844
let pres = process.pid
let result = process.kill(28, pres)
Z
zengyawen 已提交
845
```