js-apis-process.md 16.9 KB
Newer Older
Z
zengyawen 已提交
1
# 获取进程相关的信息
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

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

Z
zengyawen 已提交
235
### 属性
Z
zengyawen 已提交
236

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

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


Z
zengyawen 已提交
247
### wait
Z
zengyawen 已提交
248

Z
zengyawen 已提交
249
wait(): Promise&lt;number&gt;
Z
zengyawen 已提交
250

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

253 254 255
**系统接口:** 此接口为系统接口。

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

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

Z
zengyawen 已提交
259 260 261 262 263
**返回值:**

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

Z
zengyawen 已提交
265 266
**示例:**

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


Z
zengyawen 已提交
276
### getOutput
Z
zengyawen 已提交
277

Z
zengyawen 已提交
278 279 280
getOutput(): Promise&lt;Uint8Array&gt;

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

282 283 284
**系统接口:** 此接口为系统接口。

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

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

Z
zengyawen 已提交
288
**返回值:**
Z
zengyawen 已提交
289

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

**示例:**

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


Z
zengyawen 已提交
305
### getErrorOutput
Z
zengyawen 已提交
306

Z
zengyawen 已提交
307
getErrorOutput(): Promise&lt;Uint8Array&gt;
Z
zengyawen 已提交
308

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

311 312 313
**系统接口:** 此接口为系统接口。

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

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

Z
zengyawen 已提交
317 318 319 320 321
**返回值:**

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

Z
zengyawen 已提交
323 324
**示例:**

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


Z
zengyawen 已提交
334
### close
Z
zengyawen 已提交
335

X
xdmal 已提交
336
close(): void
Z
zengyawen 已提交
337

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

340 341 342
**系统接口:** 此接口为系统接口。

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

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

Z
zengyawen 已提交
346 347
**示例:**

348
```js
349
let child = process.runCmd('sleep 5; ls');
Z
zengyawen 已提交
350 351
child.close();
```
Z
zengyawen 已提交
352 353


Z
zengyawen 已提交
354
### kill
Z
zengyawen 已提交
355

Z
zengyawen 已提交
356
kill(signal: number | string): void
Z
zengyawen 已提交
357

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

360 361 362
**系统接口:** 此接口为系统接口。

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

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

Z
zengyawen 已提交
366 367 368 369 370
**参数:**

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

Z
zengyawen 已提交
372 373
**示例:**

374
```js
375
let child = process.runCmd('sleep 5; ls');
Z
zengyawen 已提交
376 377
child.kill(9);
```
Z
zengyawen 已提交
378 379


Z
zengyawen 已提交
380 381 382 383
## process.isIsolatedProcess<sup>8+</sup>

isIsolatedProcess(): boolean

384
判断进程是否被隔离。
Z
zengyawen 已提交
385

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

Z
zengyawen 已提交
388
**返回值:**
Z
zengyawen 已提交
389

Z
zengyawen 已提交
390 391 392 393 394 395
| 类型 | 说明 |
| -------- | -------- |
| boolean | 返回判断结果,如果返回true表示进程被隔离。 |

**示例:**

396
```js
397
let result = process.isIsolatedProcess();
Z
zengyawen 已提交
398
```
Z
zengyawen 已提交
399 400 401 402


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

X
xdmal 已提交
403
isAppUid(v: number): boolean
Z
zengyawen 已提交
404

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

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

Z
zengyawen 已提交
409 410 411 412 413 414 415
**参数:**

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

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

Z
zengyawen 已提交
417 418 419
| 类型 | 说明 |
| -------- | -------- |
| boolean | 返回判断结果,如果返回true表示为应用程序的uid。|
Z
zengyawen 已提交
420

Z
zengyawen 已提交
421 422
**示例:**

423
```js
424
let result = process.isAppUid(688);
Z
zengyawen 已提交
425
```
Z
zengyawen 已提交
426 427 428 429 430 431


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

is64Bit(): boolean

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

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

Z
zengyawen 已提交
436 437 438 439 440
**返回值:**

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

Z
zengyawen 已提交
442 443
**示例:**

444
```js
445
let result = process.is64Bit();
Z
zengyawen 已提交
446
```
Z
zengyawen 已提交
447 448 449 450


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

X
xdmal 已提交
451
getUidForName(v: string): number
Z
zengyawen 已提交
452 453 454

通过进程名获取进程uid。

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

Z
zengyawen 已提交
457
**参数:**
Z
zengyawen 已提交
458

Z
zengyawen 已提交
459 460 461
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| v | string | 是 | 进程名。 |
Z
zengyawen 已提交
462

Z
zengyawen 已提交
463 464 465 466 467 468 469 470
**返回值:**

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

**示例:**

471
```js
472
let pres = process.getUidForName("tool")
Z
zengyawen 已提交
473
```
Z
zengyawen 已提交
474 475 476 477


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

X
xdmal 已提交
478
getThreadPriority(v: number): number
Z
zengyawen 已提交
479

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

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

Z
zengyawen 已提交
484 485 486 487 488
**参数:**

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

Z
zengyawen 已提交
490
**返回值:**
Z
zengyawen 已提交
491

Z
zengyawen 已提交
492 493 494 495 496 497
| 类型 | 说明 |
| -------- | -------- |
| number | 返回线程的优先级。 |

**示例:**

498
```js
499 500
let tid = process.tid;
let pres = process.getThreadPriority(tid);
Z
zengyawen 已提交
501
```
Z
zengyawen 已提交
502 503 504 505


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

X
xdmal 已提交
506
getStartRealtime(): number
Z
zengyawen 已提交
507 508 509

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

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

Z
zengyawen 已提交
512
**返回值:**
Z
zengyawen 已提交
513

Z
zengyawen 已提交
514 515 516 517 518 519
| 类型 | 说明 |
| -------- | -------- |
| number | 返回经过的实时时间。|

**示例:**

520
```js
521
let realtime = process.getStartRealtime();
Z
zengyawen 已提交
522
```
Z
zengyawen 已提交
523

Z
zengyawen 已提交
524
## process.getPastCpuTime<sup>8+</sup>
Z
zengyawen 已提交
525

Z
zengyawen 已提交
526
getPastCpuTime(): number
Z
zengyawen 已提交
527 528 529

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

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

Z
zengyawen 已提交
532 533 534 535 536 537 538
**返回值:**

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

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

540
```js
541
let result = process.getPastCpuTime() ;
Z
zengyawen 已提交
542
```
Z
zengyawen 已提交
543 544 545 546


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

X
xdmal 已提交
547
getSystemConfig(name: number): number
Z
zengyawen 已提交
548

Z
zengyawen 已提交
549
获取系统配置信息。
Z
zengyawen 已提交
550

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

Z
zengyawen 已提交
553 554 555 556 557
**参数:**

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

Z
zengyawen 已提交
559
**返回值:**
Z
zengyawen 已提交
560

Z
zengyawen 已提交
561 562 563 564 565 566
| 类型 | 说明 |
| -------- | -------- |
| number | 返回系统配置信息。 |

**示例:**

567
```js
568 569
let _SC_ARG_MAX = 0
let pres = process.getSystemConfig(_SC_ARG_MAX)
Z
zengyawen 已提交
570
```
Z
zengyawen 已提交
571 572 573 574


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

X
xdmal 已提交
575
getEnvironmentVar(name: string): string
Z
zengyawen 已提交
576 577 578

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

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

Z
zengyawen 已提交
581
**参数:**
Z
zengyawen 已提交
582

Z
zengyawen 已提交
583 584 585
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| name | string | 是 | 环境变量名。 |
Z
zengyawen 已提交
586

Z
zengyawen 已提交
587 588 589 590 591 592 593 594
**返回值:**

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

**示例:**

595
```js
596
let pres = process.getEnvironmentVar("PATH")
Z
zengyawen 已提交
597
```
Z
zengyawen 已提交
598 599


Z
zengyawen 已提交
600 601
## process.runCmd

602
runCmd(command: string, options?: { timeout?: number, killSignal?: number | string, maxBuffer?: number }): ChildProcess
Z
zengyawen 已提交
603 604 605

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

606 607 608
**系统接口:** 此接口为系统接口。

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

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

Z
zengyawen 已提交
612 613 614 615 616 617 618 619 620 621 622 623
**参数:**

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

**表1** options

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

**返回值:**

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

**示例:**

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


## process.abort
Z
zengyawen 已提交
645

Z
zengyawen 已提交
646
abort(): void
Z
zengyawen 已提交
647

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

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

Z
zengyawen 已提交
652 653
**示例:**

654
```js
Z
zengyawen 已提交
655 656
process.abort();
```
Z
zengyawen 已提交
657 658


Z
zengyawen 已提交
659
## process.on
Z
zengyawen 已提交
660

Z
zengyawen 已提交
661
on(type: string, listener: EventListener): void
Z
zengyawen 已提交
662

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

665 666 667
**系统接口:** 此接口为系统接口。

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

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

Z
zengyawen 已提交
671 672 673 674 675 676 677 678
**参数:**

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

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

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

Z
zengyawen 已提交
684 685
**示例:**

686
```js
Z
zengyawen 已提交
687 688 689 690
process.on("data", (e)=>{
    console.log("data callback");
})
```
Z
zengyawen 已提交
691 692 693 694 695


## process.off

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

Z
zengyawen 已提交
697 698
删除用户存储的事件。

699 700 701
**系统接口:** 此接口为系统接口。

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

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

Z
zengyawen 已提交
705
**参数:**
Z
zengyawen 已提交
706

Z
zengyawen 已提交
707 708 709
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| type | string | 是 | 删除事件的type。 |
Z
zengyawen 已提交
710

Z
zengyawen 已提交
711 712 713 714 715 716 717 718
**返回值:**

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

**示例:**

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


## process.exit

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

Z
zengyawen 已提交
731 732 733 734 735
终止程序。

请谨慎使用此接口。

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

Z
zengyawen 已提交
737
**参数:**
Z
zengyawen 已提交
738

Z
zengyawen 已提交
739 740 741 742 743 744
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| code | number | 是 | 进程的退出码。 |

**示例:**

745
```js
Z
zengyawen 已提交
746 747
process.exit(0);
```
Z
zengyawen 已提交
748 749 750 751 752


## process.cwd

cwd(): string
Z
zengyawen 已提交
753

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

756 757 758
**系统接口:** 此接口为系统接口。

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

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

Z
zengyawen 已提交
762 763
**示例:**

764
```js
765
let path = process.cwd();
Z
zengyawen 已提交
766
```
Z
zengyawen 已提交
767 768


Z
zengyawen 已提交
769
## process.chdir
Z
zengyawen 已提交
770

Z
zengyawen 已提交
771
chdir(dir: string): void
Z
zengyawen 已提交
772

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

775 776 777
**系统接口:** 此接口为系统接口。

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

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

Z
zengyawen 已提交
781 782 783 784 785
**参数:**

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

Z
zengyawen 已提交
787 788
**示例:**

789
```js
Z
zengyawen 已提交
790 791
process.chdir('/system');
```
Z
zengyawen 已提交
792 793


Z
zengyawen 已提交
794
## process.uptime
Z
zengyawen 已提交
795

Z
zengyawen 已提交
796
uptime(): number
Z
zengyawen 已提交
797

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

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

Z
zengyawen 已提交
802 803 804 805 806
**返回值:**

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

Z
zengyawen 已提交
808 809
**示例:**

810
```js
811
let time = process.uptime();
Z
zengyawen 已提交
812
```
Z
zengyawen 已提交
813 814


Z
zengyawen 已提交
815
## process.kill
Z
zengyawen 已提交
816

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

Z
zengyawen 已提交
819 820 821
发送signal到指定的进程,结束指定进程。

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

Z
zengyawen 已提交
823 824 825 826 827 828 829 830 831 832 833 834 835 836
**参数:**

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

**返回值:**

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

**示例:**
837 838

```js
839 840
let pres = process.pid
let result = process.kill(28, pres)
Z
zengyawen 已提交
841
```