# @ohos.process (获取进程相关的信息)
获取进程相关的信息,提供进程管理的相关功能。
> **说明:**
>
> 本模块首批接口从API version 7开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
## 导入模块
```ts
import { process } from '@kit.ArkTS';
```
## 属性
**系统能力:** SystemCapability.Utils.Lang
**原子化服务API:** 从API version 11 开始,该接口支持在原子化服务中使用。
| 名称 | 类型 | 可读 | 可写 | 说明 |
| ---------------- | ------ | ---- | ---- | ---------------- |
| uid | number | 是 | 否 | 进程的用户标识。 |
| pid | number | 是 | 否 | 当前进程的pid。 |
| tid8+ | number | 是 | 否 | 当前线程的tid。 |
## EventListener
type EventListener = (evt: Object) => void
用户存储的事件
**原子化服务API:** 从API version 11 开始,该接口支持在原子化服务中使用。
**系统能力:** SystemCapability.Utils.Lang
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ------ | ------ | ---- | --------------- |
| evt | Object | 是 | 用户事件。|
## process.isIsolatedProcess8+
isIsolatedProcess(): boolean
判断进程是否被隔离。
**原子化服务API:** 从API version 11 开始,该接口支持在原子化服务中使用。
**系统能力:** SystemCapability.Utils.Lang
**返回值:**
| 类型 | 说明 |
| ------- | ------------------------------------------------------- |
| boolean | 返回判断结果,如果进程被隔离则返回true,否则返回false。 |
**示例:**
```js
let result = process.isIsolatedProcess();
```
## process.is64Bit8+
is64Bit(): boolean
判断运行环境是否64位。
**原子化服务API:** 从API version 11 开始,该接口支持在原子化服务中使用。
**系统能力:** SystemCapability.Utils.Lang
**返回值:**
| 类型 | 说明 |
| ------- | ----------------------------------------------------------- |
| boolean | 返回判断结果,如果运行环境是64位则返回true,否则返回false。 |
**示例:**
```js
let result = process.is64Bit();
```
## process.getStartRealtime8+
getStartRealtime(): number
获取从系统启动到进程启动所经过的实时时间(以毫秒为单位)。
**原子化服务API:** 从API version 11 开始,该接口支持在原子化服务中使用。
**系统能力:** SystemCapability.Utils.Lang
**返回值:**
| 类型 | 说明 |
| ------ | ------------------------------ |
| number | 返回经过的实时时间。单位:毫秒 |
**示例:**
```js
let realtime = process.getStartRealtime();
```
## process.getPastCpuTime8+
getPastCpuTime(): number
获取进程启动到当前时间的CPU时间(以毫秒为单位)。
**原子化服务API:** 从API version 11 开始,该接口支持在原子化服务中使用。
**系统能力:** SystemCapability.Utils.Lang
**返回值:**
| 类型 | 说明 |
| ------ | ----------------------------- |
| number | 返回经过的CPU时间。单位:毫秒 |
**示例:**
```js
let result = process.getPastCpuTime() ;
```
## process.abort
abort(): void
该方法会导致进程立即退出并生成一个核心文件,谨慎使用。
**原子化服务API:** 从API version 11 开始,该接口支持在原子化服务中使用。
**系统能力:** SystemCapability.Utils.Lang
**示例:**
```js
process.abort();
```
## process.uptime
uptime(): number
获取当前系统已运行的秒数。
**原子化服务API:** 从API version 11 开始,该接口支持在原子化服务中使用。
**系统能力:** SystemCapability.Utils.Lang
**返回值:**
| 类型 | 说明 |
| ------ | ---------------------- |
| number | 当前系统已运行的秒数。 |
**示例:**
```js
let time = process.uptime();
```
## process.kill(deprecated)
kill(signal: number, pid: number): boolean
发送signal到指定的进程,结束指定进程。
> **说明:**
>
> 从API version 7开始支持,从API version 9开始废弃,建议使用[kill9+](#kill9)替代。
**系统能力:** SystemCapability.Utils.Lang
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ------ | ------ | ---- | ------------ |
| signal | number | 是 | 发送的信号。 |
| pid | number | 是 | 进程的id。 |
**返回值:**
| 类型 | 说明 |
| ------- | ------------------------------------------------------------ |
| boolean | 信号是否发送成功。如果信号发送成功则返回true,否则返回false。 |
**示例:**
```js
let pres = process.pid
let result = process.kill(28, pres)
```
## process.exit(deprecated)
exit(code: number): void
终止程序。
请谨慎使用此接口,此接口调用后应用会退出,如果入参非0会产生数据丢失或者异常情况。
> **说明:**
>
> 从API version 7开始支持,从API version 9开始废弃,建议使用[exit9+](#exit9)替代。
**系统能力:** SystemCapability.Utils.Lang
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ------ | ------ | ---- | -------------- |
| code | number | 是 | 进程的退出码。 |
**示例:**
```js
process.exit(0);
```
## process.getUidForName(deprecated)
getUidForName(v: string): number
根据指定的用户名,从系统的用户数据库中获取该用户uid。
> **说明:**
>
> 从API version 8开始支持,从API version 9开始废弃,建议使用[getUidForName9+](#getuidforname9)替代。
**系统能力:** SystemCapability.Utils.Lang
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ------ | ------ | ---- | -------- |
| v | string | 是 | 用户名。 |
**返回值:**
| 类型 | 说明 |
| ------ | ------------- |
| number | 返回用户uid。 |
**示例:**
```js
let pres = process.getUidForName("tool")
```
## process.getThreadPriority(deprecated)
getThreadPriority(v: number): number
根据指定的tid获取线程优先级。
> **说明:**
>
> 从API version 8开始支持,从API version 9开始废弃,建议使用[getThreadPriority9+](#getthreadpriority9)替代。
**系统能力:** SystemCapability.Utils.Lang
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ------ | ------ | ---- | --------------- |
| v | number | 是 | 指定的线程tid。 |
**返回值:**
| 类型 | 说明 |
| ------ | ------------------------------------------------ |
| number | 返回线程的优先级。优先级顺序取决于当前操作系统。 |
**示例:**
```js
let tid = process.tid;
let pres = process.getThreadPriority(tid);
```
## process.isAppUid(deprecated)
isAppUid(v: number): boolean
判断uid是否属于应用程序。
> **说明:**
>
> 从API version 8开始支持,从API version 9开始废弃,建议使用[isAppUid9+](#isappuid9)替代。
**系统能力:** SystemCapability.Utils.Lang
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ------ | ------ | ---- | --------------- |
| v | number | 是 | 应用程序的uid。 |
**返回值:**
| 类型 | 说明 |
| ------- | ------------------------------------------------------------ |
| boolean | 返回判断结果,如果是应用程序的uid则返回true,否则返回false。 |
**示例:**
```js
let result = process.isAppUid(688);
```
## process.getSystemConfig(deprecated)
getSystemConfig(name: number): number
获取系统配置信息。
> **说明:**
>
> 从API version 8开始支持,从API version 9开始废弃,建议使用[getSystemConfig9+](#getsystemconfig9)替代。
**系统能力:** SystemCapability.Utils.Lang
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ------ | ------ | ---- | -------------------- |
| name | number | 是 | 指定系统配置参数名。 |
**返回值:**
| 类型 | 说明 |
| ------ | ------------------ |
| number | 返回系统配置信息。 |
**示例:**
```js
let _SC_ARG_MAX = 0
let pres = process.getSystemConfig(_SC_ARG_MAX)
```
## process.getEnvironmentVar(deprecated)
getEnvironmentVar(name: string): string
获取环境变量对应的值。
> **说明:**
>
> 从API version 8开始支持,从API version 9开始废弃,建议使用[getEnvironmentVar9+](#getenvironmentvar9)替代。
**系统能力:** SystemCapability.Utils.Lang
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ------ | ------ | ---- | ------------ |
| name | string | 是 | 环境变量名。 |
**返回值:**
| 类型 | 说明 |
| ------ | --------------------------- |
| string | 返回环境变量名对应的value。 |
**示例:**
```js
let pres = process.getEnvironmentVar("PATH")
```
## ProcessManager9+
提供用于新增进程的抛异常接口。
通过自身的构造来获取ProcessManager对象。
### isAppUid9+
isAppUid(v: number): boolean
判断uid是否属于当前应用程序。
**原子化服务API:** 从API version 11 开始,该接口支持在原子化服务中使用。
**系统能力:** SystemCapability.Utils.Lang
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ------ | ------ | ---- | --------------- |
| v | number | 是 | 应用程序的uid。可通过process.uid获取 |
**返回值:**
| 类型 | 说明 |
| ------- | ------------------------------------------------------------ |
| boolean | 返回判断结果,如果是应用程序的uid则返回true,否则返回false。 |
**错误码:**
以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
| 错误码ID | 错误信息 |
| -------- | -------- |
| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. |
**示例:**
```js
let pro = new process.ProcessManager();
// uid通过process.uid获取
let pres = process.uid;
let result = pro.isAppUid(pres);
console.log("result: " + result); // result: true
```
### getUidForName9+
getUidForName(v: string): number
根据指定的用户名,从系统的用户数据库中获取该用户uid。
**原子化服务API:** 从API version 11 开始,该接口支持在原子化服务中使用。
**系统能力:** SystemCapability.Utils.Lang
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ------ | ------ | ---- | -------- |
| v | string | 是 | 用户名。 |
**返回值:**
| 类型 | 说明 |
| ------ | ------------- |
| number | 返回用户uid,当获取的用户不存在时,返回-1。|
**错误码:**
以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
| 错误码ID | 错误信息 |
| -------- | -------- |
| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. |
**示例:**
```js
let pro = new process.ProcessManager();
let pres = pro .getUidForName("tool");
```
### getThreadPriority9+
getThreadPriority(v: number): number
根据指定的tid获取线程优先级。
**原子化服务API:** 从API version 11 开始,该接口支持在原子化服务中使用。
**系统能力:** SystemCapability.Utils.Lang
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ------ | ------ | ---- | --------------- |
| v | number | 是 | 指定的线程tid。 |
**返回值:**
| 类型 | 说明 |
| ------ | ------------------------------------------------ |
| number | 返回线程的优先级。优先级顺序取决于当前操作系统。 |
**错误码:**
以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
| 错误码ID | 错误信息 |
| -------- | -------- |
| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. |
**示例:**
```js
let pro = new process.ProcessManager();
let tid = process.tid;
let pres = pro.getThreadPriority(tid);
```
### getSystemConfig9+
getSystemConfig(name: number): number
获取系统配置信息。
**原子化服务API:** 从API version 11 开始,该接口支持在原子化服务中使用。
**系统能力:** SystemCapability.Utils.Lang
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ------ | ------ | ---- | -------------------- |
| name | number | 是 | 指定系统配置参数名。 |
**返回值:**
| 类型 | 说明 |
| ------ | ------------------ |
| number | 返回系统配置信息,当获取的系统配置不存在时,返回-1。 |
**错误码:**
以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
| 错误码ID | 错误信息 |
| -------- | -------- |
| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. |
**示例:**
```js
let pro = new process.ProcessManager();
let _SC_ARG_MAX = 0;
let pres = pro.getSystemConfig(_SC_ARG_MAX);
```
### getEnvironmentVar9+
getEnvironmentVar(name: string): string
获取环境变量对应的值。
> **说明:**
>
> 该接口是获取环境变量对应的值。当环境变量不存在时,返回undefined。
**原子化服务API:** 从API version 11 开始,该接口支持在原子化服务中使用。
**系统能力:** SystemCapability.Utils.Lang
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ------ | ------ | ---- | ------------ |
| name | string | 是 | 环境变量名。 |
**返回值:**
| 类型 | 说明 |
| ------ | ------------------------ |
| string | 返回环境变量名对应的值。 |
**错误码:**
以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
| 错误码ID | 错误信息 |
| -------- | -------- |
| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. |
**示例:**
```js
let pro = new process.ProcessManager();
let pres = pro.getEnvironmentVar("PATH");
```
### exit9+
exit(code: number): void
终止程序。
请谨慎使用此接口,此接口调用后应用会退出,如果入参非0会产生数据丢失或者异常情况。
**原子化服务API:** 从API version 11 开始,该接口支持在原子化服务中使用。
**系统能力:** SystemCapability.Utils.Lang
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ------ | ------ | ---- | -------------- |
| code | number | 是 | 进程的退出码。 |
**错误码:**
以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
| 错误码ID | 错误信息 |
| -------- | -------- |
| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. |
**示例:**
```js
let pro = new process.ProcessManager();
pro.exit(0);
```
### kill9+
kill(signal: number, pid: number): boolean
发送signal到指定的进程,结束指定进程。
**原子化服务API:** 从API version 11 开始,该接口支持在原子化服务中使用。
**系统能力:** SystemCapability.Utils.Lang
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ------ | ------ | ---- | ------------ |
| signal | number | 是 | 发送特定的信号给目标进程。 |
| pid | number | 是 | 进程的id。 |
**返回值:**
| 类型 | 说明 |
| ------- | ------------------------------------------------------------ |
| boolean | 信号是否发送成功。如果信号发送成功则返回true,否则返回false。 |
**错误码:**
以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
| 错误码ID | 错误信息 |
| -------- | -------- |
| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. |
**示例:**
```js
let pro = new process.ProcessManager();
let pres = process.pid;
let result = pro.kill(28, pres);
```