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