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

## 属性

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

Z
zengyawen 已提交
19 20
| 名称 | 类型 | 可读 | 可写 | 说明 |
| -------- | -------- | -------- | -------- | -------- |
Z
zengyawen 已提交
21 22
| uid | number | 是 | 否 | 进程的用户标识。 |
| pid | number | 是 | 否 | 当前进程的pid。 |
23
| tid<sup>8+</sup> | number | 是 | 否 | 当前线程的tid。 |
Z
zengyawen 已提交
24 25


L
lee-wen-qiang 已提交
26
## EventListener
李_文强 已提交
27

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

L
lee-wen-qiang 已提交
30 31 32
| 名称 | 说明 |
| -------- | -------- |
| EventListener&nbsp;=&nbsp;(evt: &nbsp;Object)&nbsp;=&gt;&nbsp;void | 用户存储的事件。 |
李_文强 已提交
33 34


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

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

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

L
lee-wen-qiang 已提交
41
**系统能力:** SystemCapability.Utils.Lang
李_文强 已提交
42 43 44 45 46

**返回值:**

| 类型 | 说明 |
| -------- | -------- |
L
lee-wen-qiang 已提交
47
| boolean | 返回判断结果,true表示进程被隔离,false表示未被隔离。|
李_文强 已提交
48 49 50 51

**示例:**

```js
L
lee-wen-qiang 已提交
52
let result = process.isIsolatedProcess();
李_文强 已提交
53 54 55
```


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

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

L
lee-wen-qiang 已提交
60
判断运行环境是否64位。
李_文强 已提交
61 62 63 64 65 66 67

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

**返回值:**

| 类型 | 说明 |
| -------- | -------- |
L
lee-wen-qiang 已提交
68
| boolean | 返回判断结果,如果为64位环境返回true,否则返回false。|
李_文强 已提交
69 70 71 72

**示例:**

```js
L
lee-wen-qiang 已提交
73
let result = process.is64Bit();
李_文强 已提交
74 75 76
```


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

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

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

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

**返回值:**

| 类型 | 说明 |
| -------- | -------- |
L
lee-wen-qiang 已提交
89
| number | 返回经过的实时时间。单位:毫秒|
李_文强 已提交
90 91 92 93

**示例:**

```js
L
lee-wen-qiang 已提交
94
let realtime = process.getStartRealtime();
李_文强 已提交
95 96
```

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

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

L
lee-wen-qiang 已提交
101
获取进程启动到当前时间的CPU时间(以毫秒为单位)。
李_文强 已提交
102 103 104 105 106 107 108

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

**返回值:**

| 类型 | 说明 |
| -------- | -------- |
L
lee-wen-qiang 已提交
109
| number | 返回经过的CPU时间。单位:毫秒|
李_文强 已提交
110 111 112 113

**示例:**

```js
L
lee-wen-qiang 已提交
114
let result = process.getPastCpuTime() ;
李_文强 已提交
115 116 117
```


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

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

L
lee-wen-qiang 已提交
122 123 124 125 126 127 128 129 130
该方法会导致进程立即退出并生成一个核心文件,谨慎使用。

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

**示例:**

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

L
lee-wen-qiang 已提交
132 133

## process.uptime
Z
zengyawen 已提交
134

L
lee-wen-qiang 已提交
135
uptime(): number
136

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

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

Z
zengyawen 已提交
141
**返回值:**
Z
zengyawen 已提交
142

Z
zengyawen 已提交
143 144
| 类型 | 说明 |
| -------- | -------- |
L
lee-wen-qiang 已提交
145
| number | 当前系统已运行的秒数。 |
Z
zengyawen 已提交
146 147 148

**示例:**

149
```js
L
lee-wen-qiang 已提交
150
let time = process.uptime();
Z
zengyawen 已提交
151
```
Z
zengyawen 已提交
152 153


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

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

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

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

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

L
lee-wen-qiang 已提交
166 167 168 169 170 171 172
**参数:**

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

Z
zengyawen 已提交
173 174 175 176
**返回值:**

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

Z
zengyawen 已提交
179 180
**示例:**

181
```js
L
lee-wen-qiang 已提交
182 183
let pres = process.pid
let result = process.kill(28, pres)
Z
zengyawen 已提交
184
```
Z
zengyawen 已提交
185 186


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

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

L
lee-wen-qiang 已提交
191
终止程序。
Z
zengyawen 已提交
192

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

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

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

L
lee-wen-qiang 已提交
201 202 203 204 205 206
**参数:**

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

Z
zengyawen 已提交
207 208
**示例:**

209
```js
L
lee-wen-qiang 已提交
210
process.exit(0);
Z
zengyawen 已提交
211
```
Z
zengyawen 已提交
212 213


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

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

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

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

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

Z
zengyawen 已提交
226 227 228 229
**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
L
lee-wen-qiang 已提交
230 231 232 233 234 235 236
| v | string | 是 | 进程名。 |

**返回值:**

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

Z
zengyawen 已提交
238 239
**示例:**

240
```js
L
lee-wen-qiang 已提交
241
let pres = process.getUidForName("tool")
Z
zengyawen 已提交
242
```
Z
zengyawen 已提交
243 244


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

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

L
lee-wen-qiang 已提交
249 250 251 252 253
根据指定的tid获取线程优先级。

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

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

L
lee-wen-qiang 已提交
257 258 259 260 261 262
**参数:**

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

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

Z
zengyawen 已提交
265 266
| 类型 | 说明 |
| -------- | -------- |
L
lee-wen-qiang 已提交
267
| number | 返回线程的优先级。 |
Z
zengyawen 已提交
268 269 270

**示例:**

271
```js
L
lee-wen-qiang 已提交
272 273
let tid = process.tid;
let pres = process.getThreadPriority(tid);
Z
zengyawen 已提交
274
```
Z
zengyawen 已提交
275 276


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

X
xdmal 已提交
279
isAppUid(v: number): boolean
Z
zengyawen 已提交
280

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

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

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

Z
zengyawen 已提交
289 290 291 292 293 294 295
**参数:**

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

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

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

Z
zengyawen 已提交
301 302
**示例:**

303
```js
304
let result = process.isAppUid(688);
Z
zengyawen 已提交
305
```
Z
zengyawen 已提交
306 307


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

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

L
lee-wen-qiang 已提交
312 313 314 315 316
获取系统配置信息。

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

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

L
lee-wen-qiang 已提交
320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390
**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| 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 已提交
391 392 393 394
**返回值:**

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

Z
zengyawen 已提交
397 398
**示例:**

399
```js
L
lee-wen-qiang 已提交
400 401
let pro = new process.ProcessManager();
let result = pro.isAppUid(688);
Z
zengyawen 已提交
402
```
Z
zengyawen 已提交
403 404


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

X
xdmal 已提交
407
getUidForName(v: string): number
Z
zengyawen 已提交
408 409 410

通过进程名获取进程uid。

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

Z
zengyawen 已提交
413
**参数:**
Z
zengyawen 已提交
414

Z
zengyawen 已提交
415 416 417
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| v | string | 是 | 进程名。 |
Z
zengyawen 已提交
418

Z
zengyawen 已提交
419 420 421 422 423 424 425 426
**返回值:**

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

**示例:**

427
```js
L
lee-wen-qiang 已提交
428 429
let pro = new process.ProcessManager();
let pres = pro .getUidForName("tool");
Z
zengyawen 已提交
430
```
Z
zengyawen 已提交
431 432


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

X
xdmal 已提交
435
getThreadPriority(v: number): number
Z
zengyawen 已提交
436

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

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

Z
zengyawen 已提交
441 442 443 444 445
**参数:**

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

Z
zengyawen 已提交
447
**返回值:**
Z
zengyawen 已提交
448

Z
zengyawen 已提交
449 450 451 452 453 454
| 类型 | 说明 |
| -------- | -------- |
| number | 返回线程的优先级。 |

**示例:**

455
```js
L
lee-wen-qiang 已提交
456
let pro = new process.ProcessManager();
457
let tid = process.tid;
L
lee-wen-qiang 已提交
458
let pres = pro.getThreadPriority(tid);
Z
zengyawen 已提交
459
```
Z
zengyawen 已提交
460 461


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

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

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

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

L
lee-wen-qiang 已提交
470
**参数:**
Z
zengyawen 已提交
471

L
lee-wen-qiang 已提交
472 473 474
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| name | number | 是 | 指定系统配置参数名。 |
Z
zengyawen 已提交
475

Z
zengyawen 已提交
476 477 478 479
**返回值:**

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

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

484
```js
L
lee-wen-qiang 已提交
485 486 487
let pro = new process.ProcessManager();
let _SC_ARG_MAX = 0;
let pres = pro.getSystemConfig(_SC_ARG_MAX);
Z
zengyawen 已提交
488
```
Z
zengyawen 已提交
489 490


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

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

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

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

Z
zengyawen 已提交
499 500 501 502
**参数:**

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

Z
zengyawen 已提交
505
**返回值:**
Z
zengyawen 已提交
506

Z
zengyawen 已提交
507 508
| 类型 | 说明 |
| -------- | -------- |
L
lee-wen-qiang 已提交
509
| string | 返回环境变量名对应的值。 |
Z
zengyawen 已提交
510 511 512

**示例:**

513
```js
L
lee-wen-qiang 已提交
514 515
let pro = new process.ProcessManager();
let pres = pro.getEnvironmentVar("PATH");
Z
zengyawen 已提交
516
```
Z
zengyawen 已提交
517 518


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

L
lee-wen-qiang 已提交
521 522 523
exit(code: number): void

终止程序。
Z
zengyawen 已提交
524

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

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

Z
zengyawen 已提交
529
**参数:**
Z
zengyawen 已提交
530

Z
zengyawen 已提交
531 532
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
L
lee-wen-qiang 已提交
533
| code | number | 是 | 进程的退出码。 |
Z
zengyawen 已提交
534 535 536

**示例:**

537
```js
L
lee-wen-qiang 已提交
538 539
let pro = new process.ProcessManager();
pro.exit(0);
Z
zengyawen 已提交
540
```
Z
zengyawen 已提交
541 542


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

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

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

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

Z
zengyawen 已提交
551 552 553 554
**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
L
lee-wen-qiang 已提交
555 556
| pid | number | 是 | 进程的id。 |
| signal | number | 是 | 发送的信号。 |
Z
zengyawen 已提交
557 558 559 560 561

**返回值:**

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

**示例:**

566
```js
L
lee-wen-qiang 已提交
567 568 569
let pro = new process.ProcessManager();
let pres = process.pid;
let result = pro.kill(28, pres);
570
```