1# @ohos.process (获取进程相关的信息)
2
3获取进程相关的信息,提供进程管理的相关功能。
4
5> **说明:**
6>
7> 本模块首批接口从API version 7开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
8
9
10## 导入模块
11
12```ts
13import { process } from '@kit.ArkTS';
14```
15
16
17## 属性
18
19**系统能力:** SystemCapability.Utils.Lang
20
21**原子化服务API:** 从API version 11 开始,该接口支持在原子化服务中使用。
22
23| 名称             | 类型   | 可读 | 可写 | 说明             |
24| ---------------- | ------ | ---- | ---- | ---------------- |
25| uid              | number | 是   | 否   | 进程的用户标识。 |
26| pid              | number | 是   | 否   | 当前进程的pid。  |
27| tid<sup>8+</sup> | number | 是   | 否   | 当前线程的tid。  |
28
29
30## EventListener
31
32type EventListener = (evt: Object) => void
33
34用户存储的事件
35
36**原子化服务API:** 从API version 11 开始,该接口支持在原子化服务中使用。
37
38**系统能力:** SystemCapability.Utils.Lang
39
40**参数:**
41
42| 参数名 | 类型   | 必填 | 说明            |
43| ------ | ------ | ---- | --------------- |
44| evt   | Object | 是 | 用户事件。|
45
46## process.isIsolatedProcess<sup>8+</sup>
47
48isIsolatedProcess(): boolean
49
50判断进程是否被隔离。
51
52**原子化服务API:** 从API version 11 开始,该接口支持在原子化服务中使用。
53
54**系统能力:** SystemCapability.Utils.Lang
55
56**返回值:**
57
58| 类型    | 说明                                                    |
59| ------- | ------------------------------------------------------- |
60| boolean | 返回判断结果,如果进程被隔离则返回true,否则返回false。 |
61
62**示例:**
63
64```js
65let result = process.isIsolatedProcess();
66```
67
68
69## process.is64Bit<sup>8+</sup>
70
71is64Bit(): boolean
72
73判断运行环境是否64位。
74
75**原子化服务API:** 从API version 11 开始,该接口支持在原子化服务中使用。
76
77**系统能力:** SystemCapability.Utils.Lang
78
79**返回值:**
80
81| 类型    | 说明                                                        |
82| ------- | ----------------------------------------------------------- |
83| boolean | 返回判断结果,如果运行环境是64位则返回true,否则返回false。 |
84
85**示例:**
86
87```js
88let result = process.is64Bit();
89```
90
91
92## process.getStartRealtime<sup>8+</sup>
93
94getStartRealtime(): number
95
96获取从系统启动到进程启动所经过的实时时间(以毫秒为单位)。
97
98**原子化服务API:** 从API version 11 开始,该接口支持在原子化服务中使用。
99
100**系统能力:** SystemCapability.Utils.Lang
101
102**返回值:**
103
104| 类型   | 说明                           |
105| ------ | ------------------------------ |
106| number | 返回经过的实时时间。单位:毫秒 |
107
108**示例:**
109
110```js
111let realtime = process.getStartRealtime();
112```
113
114## process.getPastCpuTime<sup>8+</sup>
115
116getPastCpuTime(): number
117
118获取进程启动到当前时间的CPU时间(以毫秒为单位)。
119
120**原子化服务API:** 从API version 11 开始,该接口支持在原子化服务中使用。
121
122**系统能力:** SystemCapability.Utils.Lang
123
124**返回值:**
125
126| 类型   | 说明                          |
127| ------ | ----------------------------- |
128| number | 返回经过的CPU时间。单位:毫秒 |
129
130**示例:**
131
132```js
133let result = process.getPastCpuTime() ;
134```
135
136
137## process.abort
138
139abort(): void
140
141该方法会导致进程立即退出并生成一个核心文件,谨慎使用。
142
143**原子化服务API:** 从API version 11 开始,该接口支持在原子化服务中使用。
144
145**系统能力:** SystemCapability.Utils.Lang
146
147**示例:**
148
149```js
150process.abort();
151```
152
153
154## process.uptime
155
156uptime(): number
157
158获取当前系统已运行的秒数。
159
160**原子化服务API:** 从API version 11 开始,该接口支持在原子化服务中使用。
161
162**系统能力:** SystemCapability.Utils.Lang
163
164**返回值:**
165
166| 类型   | 说明                   |
167| ------ | ---------------------- |
168| number | 当前系统已运行的秒数。 |
169
170**示例:**
171
172```js
173let time = process.uptime();
174```
175
176
177## process.kill<sup>(deprecated)</sup>
178
179kill(signal: number, pid: number): boolean
180
181发送signal到指定的进程,结束指定进程。
182
183> **说明:**
184>
185> 从API version 7开始支持,从API version 9开始废弃,建议使用[kill<sup>9+</sup>](#kill9)替代。
186
187**系统能力:** SystemCapability.Utils.Lang
188
189**参数:**
190
191| 参数名 | 类型   | 必填 | 说明         |
192| ------ | ------ | ---- | ------------ |
193| signal | number | 是   | 发送的信号。 |
194| pid    | number | 是   | 进程的id。   |
195
196**返回值:**
197
198| 类型    | 说明                                                         |
199| ------- | ------------------------------------------------------------ |
200| boolean | 信号是否发送成功。如果信号发送成功则返回true,否则返回false。 |
201
202**示例:**
203
204```js
205let pres = process.pid
206let result = process.kill(28, pres)
207```
208
209
210## process.exit<sup>(deprecated)</sup>
211
212exit(code: number): void
213
214终止程序。
215
216请谨慎使用此接口,此接口调用后应用会退出,如果入参非0会产生数据丢失或者异常情况。
217
218> **说明:**
219>
220> 从API version 7开始支持,从API version 9开始废弃,建议使用[exit<sup>9+</sup>](#exit9)替代。
221
222**系统能力:** SystemCapability.Utils.Lang
223
224**参数:**
225
226| 参数名 | 类型   | 必填 | 说明           |
227| ------ | ------ | ---- | -------------- |
228| code   | number | 是   | 进程的退出码。 |
229
230**示例:**
231
232```js
233process.exit(0);
234```
235
236
237## process.getUidForName<sup>(deprecated)</sup>
238
239getUidForName(v: string): number
240
241根据指定的用户名,从系统的用户数据库中获取该用户uid。
242
243> **说明:**
244>
245> 从API version 8开始支持,从API version 9开始废弃,建议使用[getUidForName<sup>9+</sup>](#getuidforname9)替代。
246
247**系统能力:** SystemCapability.Utils.Lang
248
249**参数:**
250
251| 参数名 | 类型   | 必填 | 说明     |
252| ------ | ------ | ---- | -------- |
253| v      | string | 是   | 用户名。 |
254
255**返回值:**
256
257| 类型   | 说明          |
258| ------ | ------------- |
259| number | 返回用户uid。 |
260
261**示例:**
262
263```js
264let pres = process.getUidForName("tool")
265```
266
267
268## process.getThreadPriority<sup>(deprecated)</sup>
269
270getThreadPriority(v: number): number
271
272根据指定的tid获取线程优先级。
273
274> **说明:**
275>
276> 从API version 8开始支持,从API version 9开始废弃,建议使用[getThreadPriority<sup>9+</sup>](#getthreadpriority9)替代。
277
278**系统能力:** SystemCapability.Utils.Lang
279
280**参数:**
281
282| 参数名 | 类型   | 必填 | 说明            |
283| ------ | ------ | ---- | --------------- |
284| v      | number | 是   | 指定的线程tid。 |
285
286**返回值:**
287
288| 类型   | 说明                                             |
289| ------ | ------------------------------------------------ |
290| number | 返回线程的优先级。优先级顺序取决于当前操作系统。 |
291
292**示例:**
293
294```js
295let tid = process.tid;
296let pres = process.getThreadPriority(tid);
297```
298
299
300## process.isAppUid<sup>(deprecated)</sup>
301
302isAppUid(v: number): boolean
303
304判断uid是否属于应用程序。
305
306> **说明:**
307>
308> 从API version 8开始支持,从API version 9开始废弃,建议使用[isAppUid<sup>9+</sup>](#isappuid9)替代。
309
310**系统能力:** SystemCapability.Utils.Lang
311
312**参数:**
313
314| 参数名 | 类型   | 必填 | 说明            |
315| ------ | ------ | ---- | --------------- |
316| v      | number | 是   | 应用程序的uid。 |
317
318**返回值:**
319
320| 类型    | 说明                                                         |
321| ------- | ------------------------------------------------------------ |
322| boolean | 返回判断结果,如果是应用程序的uid则返回true,否则返回false。 |
323
324**示例:**
325
326```js
327let result = process.isAppUid(688);
328```
329
330
331## process.getSystemConfig<sup>(deprecated)</sup>
332
333getSystemConfig(name: number): number
334
335获取系统配置信息。
336
337> **说明:**
338>
339> 从API version 8开始支持,从API version 9开始废弃,建议使用[getSystemConfig<sup>9+</sup>](#getsystemconfig9)替代。
340
341**系统能力:** SystemCapability.Utils.Lang
342
343**参数:**
344
345| 参数名 | 类型   | 必填 | 说明                 |
346| ------ | ------ | ---- | -------------------- |
347| name   | number | 是   | 指定系统配置参数名。 |
348
349**返回值:**
350
351| 类型   | 说明               |
352| ------ | ------------------ |
353| number | 返回系统配置信息。 |
354
355**示例:**
356
357```js
358let _SC_ARG_MAX = 0
359let pres = process.getSystemConfig(_SC_ARG_MAX)
360```
361
362
363## process.getEnvironmentVar<sup>(deprecated)</sup>
364
365getEnvironmentVar(name: string): string
366
367获取环境变量对应的值。
368
369> **说明:**
370>
371> 从API version 8开始支持,从API version 9开始废弃,建议使用[getEnvironmentVar<sup>9+</sup>](#getenvironmentvar9)替代。
372
373**系统能力:** SystemCapability.Utils.Lang
374
375**参数:**
376
377| 参数名 | 类型   | 必填 | 说明         |
378| ------ | ------ | ---- | ------------ |
379| name   | string | 是   | 环境变量名。 |
380
381**返回值:**
382
383| 类型   | 说明                        |
384| ------ | --------------------------- |
385| string | 返回环境变量名对应的value。 |
386
387**示例:**
388
389```js
390let pres = process.getEnvironmentVar("PATH")
391```
392
393
394## ProcessManager<sup>9+</sup>
395
396提供用于新增进程的抛异常接口。
397
398通过自身的构造来获取ProcessManager对象。
399
400### isAppUid<sup>9+</sup>
401
402isAppUid(v: number): boolean
403
404判断uid是否属于当前应用程序。
405
406**原子化服务API:** 从API version 11 开始,该接口支持在原子化服务中使用。
407
408**系统能力:** SystemCapability.Utils.Lang
409
410**参数:**
411
412| 参数名 | 类型   | 必填 | 说明            |
413| ------ | ------ | ---- | --------------- |
414| v      | number | 是   | 应用程序的uid。可通过process.uid获取 |
415
416**返回值:**
417
418| 类型    | 说明                                                         |
419| ------- | ------------------------------------------------------------ |
420| boolean | 返回判断结果,如果是应用程序的uid则返回true,否则返回false。 |
421
422**错误码:**
423
424以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
425
426| 错误码ID | 错误信息 |
427| -------- | -------- |
428| 401      | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. |
429
430**示例:**
431
432```js
433let pro = new process.ProcessManager();
434// uid通过process.uid获取
435let pres = process.uid;
436let result = pro.isAppUid(pres);
437console.log("result: " + result); // result: true
438```
439
440
441### getUidForName<sup>9+</sup>
442
443getUidForName(v: string): number
444
445根据指定的用户名,从系统的用户数据库中获取该用户uid。
446
447**原子化服务API:** 从API version 11 开始,该接口支持在原子化服务中使用。
448
449**系统能力:** SystemCapability.Utils.Lang
450
451**参数:**
452
453| 参数名 | 类型   | 必填 | 说明     |
454| ------ | ------ | ---- | -------- |
455| v      | string | 是   | 用户名。 |
456
457**返回值:**
458
459| 类型   | 说明          |
460| ------ | ------------- |
461| number | 返回用户uid,当获取的用户不存在时,返回-1。|
462
463**错误码:**
464
465以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
466
467| 错误码ID | 错误信息 |
468| -------- | -------- |
469| 401      | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. |
470
471**示例:**
472
473```js
474let pro = new process.ProcessManager();
475let pres = pro .getUidForName("tool");
476```
477
478
479### getThreadPriority<sup>9+</sup>
480
481getThreadPriority(v: number): number
482
483根据指定的tid获取线程优先级。
484
485**原子化服务API:** 从API version 11 开始,该接口支持在原子化服务中使用。
486
487**系统能力:** SystemCapability.Utils.Lang
488
489**参数:**
490
491| 参数名 | 类型   | 必填 | 说明            |
492| ------ | ------ | ---- | --------------- |
493| v      | number | 是   | 指定的线程tid。 |
494
495**返回值:**
496
497| 类型   | 说明                                             |
498| ------ | ------------------------------------------------ |
499| number | 返回线程的优先级。优先级顺序取决于当前操作系统。 |
500
501**错误码:**
502
503以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
504
505| 错误码ID | 错误信息 |
506| -------- | -------- |
507| 401      | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. |
508
509**示例:**
510
511```js
512let pro = new process.ProcessManager();
513let tid = process.tid;
514let pres = pro.getThreadPriority(tid);
515```
516
517
518### getSystemConfig<sup>9+</sup>
519
520getSystemConfig(name: number): number
521
522获取系统配置信息。
523
524**原子化服务API:** 从API version 11 开始,该接口支持在原子化服务中使用。
525
526**系统能力:** SystemCapability.Utils.Lang
527
528**参数:**
529
530| 参数名 | 类型   | 必填 | 说明                 |
531| ------ | ------ | ---- | -------------------- |
532| name   | number | 是   | 指定系统配置参数名。 |
533
534**返回值:**
535
536| 类型   | 说明               |
537| ------ | ------------------ |
538| number | 返回系统配置信息,当获取的系统配置不存在时,返回-1。 |
539
540**错误码:**
541
542以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
543
544| 错误码ID | 错误信息 |
545| -------- | -------- |
546| 401      | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. |
547
548**示例:**
549
550```js
551let pro = new process.ProcessManager();
552let _SC_ARG_MAX = 0;
553let pres = pro.getSystemConfig(_SC_ARG_MAX);
554```
555
556
557### getEnvironmentVar<sup>9+</sup>
558
559getEnvironmentVar(name: string): string
560
561获取环境变量对应的值。
562
563> **说明:**
564>
565> 该接口是获取环境变量对应的值。当环境变量不存在时,返回undefined。
566
567**原子化服务API:** 从API version 11 开始,该接口支持在原子化服务中使用。
568
569**系统能力:** SystemCapability.Utils.Lang
570
571**参数:**
572
573| 参数名 | 类型   | 必填 | 说明         |
574| ------ | ------ | ---- | ------------ |
575| name   | string | 是   | 环境变量名。 |
576
577**返回值:**
578
579| 类型   | 说明                     |
580| ------ | ------------------------ |
581| string | 返回环境变量名对应的值。 |
582
583**错误码:**
584
585以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
586
587| 错误码ID | 错误信息 |
588| -------- | -------- |
589| 401      | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. |
590
591**示例:**
592
593```js
594let pro = new process.ProcessManager();
595let pres = pro.getEnvironmentVar("PATH");
596```
597
598
599### exit<sup>9+</sup>
600
601exit(code: number): void
602
603终止程序。
604
605请谨慎使用此接口,此接口调用后应用会退出,如果入参非0会产生数据丢失或者异常情况。
606
607**原子化服务API:** 从API version 11 开始,该接口支持在原子化服务中使用。
608
609**系统能力:** SystemCapability.Utils.Lang
610
611**参数:**
612
613| 参数名 | 类型   | 必填 | 说明           |
614| ------ | ------ | ---- | -------------- |
615| code   | number | 是   | 进程的退出码。 |
616
617**错误码:**
618
619以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
620
621| 错误码ID | 错误信息 |
622| -------- | -------- |
623| 401      | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. |
624
625**示例:**
626
627```js
628let pro = new process.ProcessManager();
629pro.exit(0);
630```
631
632
633### kill<sup>9+</sup>
634
635kill(signal: number, pid: number): boolean
636
637发送signal到指定的进程,结束指定进程。
638
639**原子化服务API:** 从API version 11 开始,该接口支持在原子化服务中使用。
640
641**系统能力:** SystemCapability.Utils.Lang
642
643**参数:**
644
645| 参数名 | 类型   | 必填 | 说明         |
646| ------ | ------ | ---- | ------------ |
647| signal | number | 是   | 发送特定的信号给目标进程。 |
648| pid    | number | 是   | 进程的id。   |
649
650**返回值:**
651
652| 类型    | 说明                                                         |
653| ------- | ------------------------------------------------------------ |
654| boolean | 信号是否发送成功。如果信号发送成功则返回true,否则返回false。 |
655
656**错误码:**
657
658以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
659
660| 错误码ID | 错误信息 |
661| -------- | -------- |
662| 401      | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. |
663
664**示例:**
665
666```js
667let pro = new process.ProcessManager();
668let pres = process.pid;
669let result = pro.kill(28, pres);
670```