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```