• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# 获取进程相关的信息
2
3> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
4> 本模块首批接口从API version 7开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
5
6
7## 导入模块
8
9```
10import process from '@ohos.process';
11```
12
13
14## 属性
15
16**系统能力:** 以下各项对应的系统能力均为SystemCapability.Utils.Lang17
18| 名称 | 类型 | 可读 | 可写 | 说明 |
19| -------- | -------- | -------- | -------- | -------- |
20| egid | number | 是 | 否 | 进程的有效组标识。该接口为系统接口,三方应用不支持调用。 |
21| euid | number | 是 | 否 | 进程的有效用户身份。该接口为系统接口,三方应用不支持调用。 |
22| gid | number | 是 | 否 | 进程的组标识。该接口为系统接口,三方应用不支持调用。 |
23| uid | number | 是 | 否 | 进程的用户标识。 |
24| groups | number[] | 是 | 否 | 带有补充组id的数组。该接口为系统接口,三方应用不支持调用。 |
25| pid | number | 是 | 否 | 当前进程的pid。 |
26| ppid | number | 是 | 否 | 当前进程的父进程的pid。该接口为系统接口,三方应用不支持调用。 |
27| tid<sup>8+</sup> | number | 是 | 否 | 当前线程的tid。 |
28
29
30## ChildProcess
31
32主进程可以获取子进程的标准输入输出,以及发送信号和关闭子进程。
33
34
35### 属性
36
37**系统能力:** 以下各项对应的系统能力均为SystemCapability.Utils.Lang38
39| 名称 | 类型 | 可读 | 可写 | 说明 |
40| -------- | -------- | -------- | -------- | -------- |
41| pid | number | 是 | 否 | 子进程的pid。该接口为系统接口,三方应用不支持调用。 |
42| ppid | number | 是 | 否 | 子进程的父进程的pid。该接口为系统接口,三方应用不支持调用。 |
43| exitCode | number | 是 | 否 | 子进程的退出码。该接口为系统接口,三方应用不支持调用。 |
44| killed | boolean | 是 | 否 | 父进程给子进程发信号是否成功。该接口为系统接口,三方应用不支持调用。 |
45
46
47### wait
48
49wait(): Promise&lt;number&gt;
50
51等待子进程运行结束,返回promise对象,其值为子进程的退出码。
52
53该接口为系统接口,三方应用不支持调用。
54
55**系统能力:** SystemCapability.Utils.Lang
56
57**返回值:**
58
59| 类型 | 说明 |
60| -------- | -------- |
61| Promise&lt;number&gt; | 异步返回子进程的退出码。 |
62
63**示例:**
64
65```js
66var child = process.runCmd('ls');
67var result = child.wait();
68result.then(val=>{
69    console.log("result = " + val);
70})
71```
72
73
74### getOutput
75
76getOutput(): Promise&lt;Uint8Array&gt;
77
78获取子进程的标准输出。
79
80该接口为系统接口,三方应用不支持调用。
81
82**系统能力:** SystemCapability.Utils.Lang
83
84**返回值:**
85
86| 类型 | 说明 |
87| -------- | -------- |
88| Promise&lt;Uint8Array&gt; | 异步返回标准输出的字节流。 |
89
90**示例:**
91
92```js
93var child = process.runCmd('ls');
94var result = child.wait();
95child.getOutput.then(val=>{
96    console.log("child.getOutput = " + val);
97})
98```
99
100
101### getErrorOutput
102
103getErrorOutput(): Promise&lt;Uint8Array&gt;
104
105获取子进程的标准错误输出。
106
107该接口为系统接口,三方应用不支持调用。
108
109**系统能力:** SystemCapability.Utils.Lang
110
111**返回值:**
112
113| 类型 | 说明 |
114| -------- | -------- |
115| Promise&lt;Uint8Array&gt; | 异步返回标准错误输出的字节流。 |
116
117**示例:**
118
119```js
120var child = process.runCmd('madir test.text');
121var result = child.wait();
122child.getErrorOutput.then(val=>{
123    console.log("child.getErrorOutput= " + val);
124})
125```
126
127
128### close
129
130close(): void
131
132关闭正在运行的子进程。
133
134该接口为系统接口,三方应用不支持调用。
135
136**系统能力:** SystemCapability.Utils.Lang
137
138**示例:**
139
140```js
141var child = process.runCmd('sleep 5; ls');
142child.close();
143```
144
145
146### kill
147
148kill(signal: number | string): void
149
150用于发送信号给子进程,结束指定进程。
151
152该接口为系统接口,三方应用不支持调用。
153
154**系统能力:** SystemCapability.Utils.Lang
155
156**参数:**
157
158| 参数名 | 类型 | 必填 | 说明 |
159| -------- | -------- | -------- | -------- |
160| signal | number&nbsp;\|&nbsp;string | 是 | 数字或字符串。 |
161
162**示例:**
163
164```js
165var child = process.runCmd('sleep 5; ls');
166child.kill(9);
167```
168
169
170## process.isIsolatedProcess<sup>8+</sup>
171
172isIsolatedProcess(): boolean
173
174判断进程是否被隔离。
175
176**系统能力:** SystemCapability.Utils.Lang
177
178**返回值:**
179
180| 类型 | 说明 |
181| -------- | -------- |
182| boolean | 返回判断结果,如果返回true表示进程被隔离。 |
183
184**示例:**
185
186```js
187var result = process.isIsolatedProcess();
188```
189
190
191## process.isAppUid<sup>8+</sup>
192
193isAppUid(v: number): boolean
194
195判断uid是否属于应用程序。
196
197**系统能力:** SystemCapability.Utils.Lang
198
199**参数:**
200
201| 参数名 | 类型 | 必填 | 说明 |
202| -------- | -------- | -------- | -------- |
203| v | number | 是 | 应用程序的uid。 |
204
205**返回值:**
206
207| 类型 | 说明 |
208| -------- | -------- |
209| boolean | 返回判断结果,如果返回true表示为应用程序的uid。|
210
211**示例:**
212
213```js
214var result = process.isAppUid(688);
215```
216
217
218## process.is64Bit<sup>8+</sup>
219
220is64Bit(): boolean
221
222判断运行环境是否64位。
223
224**系统能力:** SystemCapability.Utils.Lang
225
226**返回值:**
227
228| 类型 | 说明 |
229| -------- | -------- |
230| boolean | 返回判断结果,如果返回true表示为64位环境。 |
231
232**示例:**
233
234```js
235var ressult = process.is64Bit();
236```
237
238
239## process.getUidForName<sup>8+</sup>
240
241getUidForName(v: string): number
242
243通过进程名获取进程uid。
244
245**系统能力:** SystemCapability.Utils.Lang
246
247**参数:**
248
249| 参数名 | 类型 | 必填 | 说明 |
250| -------- | -------- | -------- | -------- |
251| v | string | 是 | 进程名。 |
252
253**返回值:**
254
255| 类型 | 说明 |
256| -------- | -------- |
257| number | 返回进程uid。|
258
259**示例:**
260
261```js
262var pres = process.getUidForName("tool")
263```
264
265
266## process.getThreadPriority<sup>8+</sup>
267
268getThreadPriority(v: number): number
269
270根据指定的tid获取线程优先级。
271
272**系统能力:** SystemCapability.Utils.Lang
273
274**参数:**
275
276| 参数名 | 类型 | 必填 | 说明 |
277| -------- | -------- | -------- | -------- |
278| v | number | 是 | 指定的线程tid。 |
279
280**返回值:**
281
282| 类型 | 说明 |
283| -------- | -------- |
284| number | 返回线程的优先级。 |
285
286**示例:**
287
288```js
289var tid = process.getTid();
290var pres = process.getThreadPriority(tid);
291```
292
293
294## process.getStartRealtime<sup>8+</sup>
295
296getStartRealtime(): number
297
298获取从系统启动到进程启动所经过的实时时间(以毫秒为单位)。
299
300**系统能力:** SystemCapability.Utils.Lang
301
302**返回值:**
303
304| 类型 | 说明 |
305| -------- | -------- |
306| number | 返回经过的实时时间。|
307
308**示例:**
309
310```js
311var realtime = process.getStartRealtime();
312```
313
314## process.getPastCpuTime<sup>8+</sup>
315
316getPastCpuTime(): number
317
318获取进程启动到当前时间的CPU时间(以毫秒为单位)。
319
320**系统能力:** SystemCapability.Utils.Lang
321
322**返回值:**
323
324| 类型 | 说明 |
325| -------- | -------- |
326| number | 返回经过的CPU时间。 |
327
328**示例:**
329
330```js
331var result = process.getPastCpuTime() ;
332```
333
334
335## process.getSystemConfig<sup>8+</sup>
336
337getSystemConfig(name: number): number
338
339获取系统配置信息。
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
358var _SC_ARG_MAX = 0
359var pres = process.getSystemConfig(_SC_ARG_MAX)
360```
361
362
363## process.getEnvironmentVar<sup>8+</sup>
364
365getEnvironmentVar(name: string): string
366
367用该方法获取环境变量对应的值。
368
369**系统能力:** SystemCapability.Utils.Lang
370
371**参数:**
372
373| 参数名 | 类型 | 必填 | 说明 |
374| -------- | -------- | -------- | -------- |
375| name | string | 是 | 环境变量名。 |
376
377**返回值:**
378
379| 类型 | 说明 |
380| -------- | -------- |
381| string | 返回环境变量名对应的value。 |
382
383**示例:**
384
385```js
386var pres = process.getEnvironmentVar("PATH")
387```
388
389
390## process.runCmd
391
392runCmd(command: string, options?: { timeout : number, killSignal : number | string, maxBuffer : number }): ChildProcess
393
394通过runcmd可以fork一个新的进程来运行一段shell,并返回ChildProcess对象。
395
396该接口为系统接口,三方应用不支持调用。
397
398**系统能力:** SystemCapability.Utils.Lang
399
400**参数:**
401
402| 参数名 | 类型 | 必填 | 说明 |
403| -------- | -------- | -------- | -------- |
404| command | string | 是 | shell命令。 |
405| options | Object | 否 | 相关选项参数。 |
406
407**表1** options
408
409| 名称 | 参数类型 | 必填 | 说明 |
410| -------- | -------- | -------- | -------- |
411| timeout | number | 否 | 子进程运行的ms数,当子进程运行时间超出此时间,则父进程发送killSignal信号给子进程。timeout默认为0。 |
412| killSignal | number&nbsp;&nbsp;\|&nbsp;string | 否 | 子进程运行时间超出timeout时,父进程发送killSignal&nbsp;信号给子进程。killSignal&nbsp;默认为'SIGTERM'。 |
413| maxBuffer | number | 否 | 子进程标准输入输出的最大缓冲区大小,当超出此大小时则终止子进程。maxBuffer默认1024\*1024。 |
414
415**返回值:**
416
417| 类型 | 说明 |
418| -------- | -------- |
419| [ChildProcess](#childprocess) | 子进程对象。 |
420
421**示例:**
422
423```js
424var child = process.runCmd('ls', { maxBuffer : 2 });
425var result = child.wait();
426child.getOutput.then(val=>{
427    console.log("child.getOutput = " + val);
428})
429```
430
431
432## process.abort
433
434abort(): void
435
436该方法会导致进程立即退出并生成一个核心文件,谨慎使用。
437
438**系统能力:** SystemCapability.Utils.Lang
439
440**示例:**
441
442```js
443process.abort();
444```
445
446
447## process.on
448
449on(type: string, listener: EventListener): void
450
451存储用户所触发的事件。
452
453该接口为系统接口,三方应用不支持调用。
454
455**系统能力:** SystemCapability.Utils.Lang
456
457**参数:**
458
459| 参数名 | 类型 | 必填 | 说明 |
460| -------- | -------- | -------- | -------- |
461| type | string | 是 | 存储事件的type。 |
462| listener | EventListener | 是 | 回调的事件。 |
463
464**表2** EventListener
465
466| 名称 | 说明 |
467| -------- | -------- |
468| EventListener&nbsp;=&nbsp;(evt: &nbsp;Object)&nbsp;=&gt;&nbsp;void | 用户存储的事件。 |
469
470**示例:**
471
472```js
473process.on("data", (e)=>{
474    console.log("data callback");
475})
476```
477
478
479## process.off
480
481off(type: string): boolean
482
483删除用户存储的事件。
484
485该接口为系统接口,三方应用不支持调用。
486
487**系统能力:** SystemCapability.Utils.Lang
488
489**参数:**
490
491| 参数名 | 类型 | 必填 | 说明 |
492| -------- | -------- | -------- | -------- |
493| type | string | 是 | 删除事件的type。 |
494
495**返回值:**
496
497| 类型 | 说明 |
498| -------- | -------- |
499| boolean | 事件是否删除成功。 |
500
501**示例:**
502
503```js
504process.on("data", (e)=>{
505    console.log("data callback");
506})
507var result = process.off("data");
508```
509
510
511## process.exit
512
513exit(code: number): void
514
515终止程序。
516
517请谨慎使用此接口。
518
519**系统能力:** SystemCapability.Utils.Lang
520
521**参数:**
522
523| 参数名 | 类型 | 必填 | 说明 |
524| -------- | -------- | -------- | -------- |
525| code | number | 是 | 进程的退出码。 |
526
527**示例:**
528
529```js
530process.exit(0);
531```
532
533
534## process.cwd
535
536cwd(): string
537
538用该方法获取进程的工作目录。
539
540该接口为系统接口,三方应用不支持调用。
541
542**系统能力:** SystemCapability.Utils.Lang
543
544**示例:**
545
546```js
547var path = process.cwd();
548```
549
550
551## process.chdir
552
553chdir(dir: string): void
554
555更改进程的当前工作目录。
556
557该接口为系统接口,三方应用不支持调用。
558
559**系统能力:** SystemCapability.Utils.Lang
560
561**参数:**
562
563| 参数名 | 类型 | 必填 | 说明 |
564| -------- | -------- | -------- | -------- |
565| dir | string | 是 | 路径。 |
566
567**示例:**
568
569```js
570process.chdir('/system');
571```
572
573
574## process.uptime
575
576uptime(): number
577
578获取当前系统已运行的秒数。
579
580**系统能力:** SystemCapability.Utils.Lang
581
582**返回值:**
583
584| 类型 | 说明 |
585| -------- | -------- |
586| number | 当前系统已运行的秒数。 |
587
588**示例:**
589
590```js
591var time = process.uptime();
592```
593
594
595## process.kill
596
597kill(signal: number, pid: number): boolean
598
599发送signal到指定的进程,结束指定进程。
600
601**系统能力:** SystemCapability.Utils.Lang
602
603**参数:**
604
605| 参数名 | 类型 | 必填 | 说明 |
606| -------- | -------- | -------- | -------- |
607| pid | number | 是 | 进程的id。 |
608| signal | number | 是 | 发送的信号。 |
609
610**返回值:**
611
612| 类型 | 说明 |
613| -------- | -------- |
614| boolean | 信号是否发送成功。 |
615
616**示例:**
617
618```js
619var pres = process.pid
620var result = that.kill(28, pres)
621```
622