From 7f7c700402c19ba7cfccc8a83fa69508d2c4263b Mon Sep 17 00:00:00 2001 From: lifansheng Date: Sat, 11 Sep 2021 09:25:22 +0800 Subject: [PATCH] modify readme Signed-off-by: lifansheng --- README.md | 464 +++++++++++++++++++++++++++++++----------------------- 1 file changed, 265 insertions(+), 199 deletions(-) mode change 100644 => 100755 README.md diff --git a/README.md b/README.md old mode 100644 new mode 100755 index 0d1d921..f6f87d0 --- a/README.md +++ b/README.md @@ -1,226 +1,292 @@ -#### js_sys_module -#### 一、process 介绍 -主要是获取进程的相关id以及获取和修改进程的工作目录,及进程的退出关闭。 process进程模块,涉及14个接口。 +# js_sys_module子系统/组件 -1.getUid() :number; +- [简介](#简介) +- [目录](#目录) +- [说明](#说明) + - [接口说明](#接口说明) + - [使用说明](#使用说明) -该process.getuid()方法返回进程的数字用户标识。 +- [相关仓](#相关仓) -2.getGid() :number; +## 简介 +process主要是获取进程的相关id以及获取和修改进程的工作目录,及进程的退出关闭。通过childprocess对象可以用来创建一个新的进程,主进程可以获取子进程的标准输入输出,以及发送信号和关闭子进程。 +## 目录 -该process.getgid()方法返回进程的数字组标识。 +``` +base/compileruntime/js_sys_module/ +├── Class:PROCESS # PROCESS类 +├── Uid # Uid属性 +├── Gid # Gid属性 +├── EUid # EUid属性 +├── EGid # EGid属性 +├── Groups # Groups属性 +├── Pid # Pid属性 +├── Ppid # Ppid属性 +├── chdir() # chdir方法 +├── uptime() # uptime方法 +├── kill() # kill方法 +├── abort() # abort方法 +├── on() # on方法 +├── exit() # exit方法 +├── cwd() # cwd方法 +├── off() # off方法 +├── runCmd() # runCmd方法 +└─── Class:CHILDPROCESS # CHILDPROCESS类 + ├── close() # close方法 + ├── kill() # kill方法 + ├── getOutput() # getOutput方法 + ├── getErrorOutput() # getErrorOutput方法 + ├── wait() # wait方法 + ├── killed # killed属性 + ├── pid # pid属性 + ├── ppid # ppid属性 + └── exitCode # exitCode属性 +``` -3.getEUid() :number; +## 说明 -该process.geteuid()方法返回进程的数字有效用户身份。 +### 接口说明 +| 接口名 | 说明 | +| -------- | -------- | +| getUid() :number | 返回进程的数字用户标识。 | +| getGid() :number | 返回进程的数字组标识。 | +| getEUid() :number | 返回进程的数字有效用户身份。 | +| getEGid() :number | 返回 Node.js 进程的数字有效组标识。 | +| getGroups() :number[] | 返回一个带有补充组 ID 的数组。 | +| getPid() :number | 返回进程的 PID。 | +| getPpid() :number | 返回当前进程的父进程的 PID。 | +| chdir(dir:string) :void | 更改 Node.js 进程的当前工作目录。 | +| uptime() :number | 返回当前系统已运行的秒数。 | +| Kill(pid:number, signal:number) :boolean | 将signal信号发送到标识的进程 PID,true代表发送成功。 | +| abort() :void | 会导致 Node.js 进程立即退出并生成一个核心文件。 | +| on(type:string ,listener:EventListener) :void | 用来存储用户所触发的事件。 | +| exit(code:number):void | 会导致 Node.js 进程立即退出。 | +| cwd():string | 返回 Node.js 进程的当前工作目录。 | +| off(type: string): boolean | 会清除用户存储的事件,true代表清除成功。 | +| runCmd(command : string, options?: RunOptions): ChildProcess | 通过runcmd可以fork一个新的进程来运行一段shell,并返回ChildProcess对象。第一个参数command指需要运行的shell,第二个参数options指子进程的一些运行参数。这些参数主要指timeout、killSignal、maxBuffer 。如果设置了timeout则子进程会在超出timeout后发送信号killSignal,maxBuffer用来限制可接收的最大stdout和stderr大小。 | +| wait(): Promise | 用来等待子进程运行结束,返回promise对象,其值为子进程的退出码。 | +| getOutput(): Promise | 用来获取子进程的标准输出。 | +| getErrorOutput(): Promise | 用来获取子进程的标准错误输出。 | +| close(): void | 用来关闭正在运行的子进程。 | +| kill(signo: number): void | 用来发送信号给子进程。 | +| readonly killed: boolean | 表示信号是否发送成功,true代表发送成功。 | +| readonly exitCode: number | 表示子进程的退出码。 | +| pid | 代表子进程ID。 | +| ppid | 代表主进程ID。 | -4.getEGid() :number; +### 使用说明 -该process.getegid()方法返回 Node.js 进程的数字有效组标识。 - -5.getGroups() :number[]; - -该process.getgroups()方法返回一个带有补充组 ID 的数组。 - -6.getPid() :number; - -该process.pid属性返回进程的 PID。 - -7.getPpid() :number; - -该process.ppid属性返回当前进程的父进程的 PID。 - -8.chdir(dir:string) :void; - -该process.chdir()方法更改 Node.js 进程的当前工作目录。 - -9.uptime() :number; - -该process.uptime()方法返回当前系统已运行的秒数。 - -10.Kill(pid:number, signal:number) :boolean; - -该process.kill()方法将 发送signal到由 标识的进程 pid。 - -11.abort() :void; - -该process.abort()方法会导致 Node.js 进程立即退出并生成一个核心文件。 - -12.on(type:string ,listener:EventListener) :void; - -该process.on()方法是用来存储用户所触发的事件。 - -13.exit(code:number):void; - -该process.Exit()方法会导致 Node.js 进程立即退出。 - -14.cwd():string; - -该process.cwd()方法返回 Node.js 进程的当前工作目录。 - -15.off(type: string): boolean; - -该process.off()方法会清除用户存储的事件。 - -process 使用方法 -import { Process } from '@ohos.process' export default { data: { title: "" }, - -getGid() { - var proc = new Process(); - var result = proc.getGid; - console.log("-------"+result); -}, - -getUid() { - var proc = new Process(); - var res = proc.getUid; +各接口使用方法如下: +1.getUid() +``` +getUid(){ + var res = Process.getUid; console.log("-------"+res); -}, - -getEgid() { - var proc = new Process(); - var resb = proc.getEgid; - console.log("-------"+resb); -}, - -getEuid() { - var proc = new Process(); - var ans = proc.getEuid; +} +``` +2.getGid() +``` +getGid(){ + var result = Process.getGid; + console.log("-------"+result); +} +``` +3.getEuid() +``` +getEuid(){ + var ans = Process.getEuid; console.log("-------"+ans); -}, - -getGroups() { - var proc = new Process(); - var answer = proc.getGroups; +} +``` +4.getEgid() +``` +getEgid(){ + var resb = Process.getEgid; + console.log("-------"+resb); +} +``` +5.getGroups() +``` +getGroups(){ + var answer = Process.getGroups; console.log("-------"+answer); -}, - -uptime() { - var proc = new Process(); - var num = proc.uptime(); - console.log("---------"+num); -}, - -kill() { - var proc = new Process(); - var ansu = proc.kill(5,10); - console.log("------"+ansu); -}, - -chdir() { - var proc = new Process(); - proc.chdir("123456"); -}, - - getPid() { - var pro = new Process(); - var result = pro.getPid; +} +``` +6.getPid() +``` +getPid(){ + var result = Process.getPid; console.log("-----"+result); -}, - +} +``` +7.getPpid() +``` getPpid(){ - var pro = new Process(); - var result = pro.getPpid; + var result = Process.getPpid; console.log("---------"+result); -}, - +} +``` +8.chdir() +``` +chdir(){ + Process.chdir("123456"); +} +``` +9.uptime() +``` +uptime(){ + var num = Process.uptime(); + console.log("---------"+num); +} +``` +10.kill() +``` +kill(){ + var ansu = Process.kill(5,23); + console.log("------"+ansu); +} +``` +11.abort() +``` +abort(){ + Process.abort(); +} +``` +12.on() +``` on(){ function add(num){ var value = num + 5; return value; } - var proc = new Process(); - proc.on("add",add); -}, - -off(){ - var pro = new Process(); - var result = pro.off("add"); - console.log("--------"+result); -}, - -Cwd(){ - var pro = new Process(); - var result = pro.cwd(); - console.log("----"+result); -}, - + Process.on("add",add); +} +``` +13.exit() +``` exit(){ - var pro = new Process(); - pro.exit(15); -}, - -abort(){ - var pro = new Process(); - pro.abort(); -}, - -onInit() { - this.title = "strings.world"; + Process.exit(15); } +``` +14.Cwd() +``` +Cwd(){ + var result = Process.cwd(); + console.log("----"+result); } +``` +15.off() -#### 二、childprocess简介 +``` +off(){ + var result = Process.off("add"); + console.log("---------"+result); +} +``` +16.runCmd() +``` +runCmd(){ + var child = process.runCmd('echo abc') + //killSignal可以是数字或字符串 + var child = process.runCmd('echo abc;', {killSignal : 'SIGKILL'}); + var child = process.runCmd('sleep 5; echo abc;', {timeout : 1, killSignal : 9, maxBuffer : 2}) +} +``` +17.wait() +``` +wait() +{ + var child = process.runCmd('ls') + var status = child.wait(); + status.then(val => { + console.log(val); + }) +} +``` +18.getOutput() +``` +getOutput(){ + var child = process.runCmd('echo bcd;'); + var res = child.getOutput(); + child.wait(); + res.then(val => { + console.log(val); + }) +} +``` +19.getErrorOutput() +``` +getErrorOutput(){ + var child = process.runCmd('makdir 1.txt'); //执行一个错误命令 + var res = child.getErrorOutput(); + child.wait(); + res.then(val => { + console.log(val); + }) +} +``` +20.close() +``` +close(){ + var child = process.runCmd('ls; sleep 5s;') + var result = child.close() + console.log(child.exitCode); +} +``` +21.kill() +``` +kill(){ + var child = process.runCmd('ls; sleep 5s;') + var result = child.kill('SIGHUP'); + child.wait(); + var temp = child.killed; + console.log(temp); +} +``` +22.killed +``` +{ + var child = process.runCmd('ls; sleep 5;') + child.kill(3); + var killed_ = child.killed; + console.log(killed_); + child.wait(); +} +``` +23.exitCode +``` +{ + var child = process.runCmd('ls; sleep 5;') + child.kill(9); + child.wait(); + var exitCode_ = child.exitCode; + console.log(exitCode_); +} +``` +24.pid +``` +pid +{ + var child = process.runCmd('ls; sleep 5;') + var pid_ = child.pid; + console.log(pid_); + child.wait(); +} +``` +25.ppid +``` +ppid +{ + var child = process.runCmd('ls; sleep 5;') + var ppid_ = child.ppid; + console.log(ppid_); + child.wait(); +} +``` -通过childprocess对象可以用来创建一个新的进程,主进程可以获取子进程的标准输入输出,以及发送信号和关闭子进程。 -接口介绍 +## 相关仓 -1.runCmd(command : string, options?: RunOptions): ChildProcess +[js_sys_module子系统](https://gitee.com/OHOS_STD/js_sys_module) -通过runcmd可以fork一个新的进程来运行一段shell,并返回ChildProcess对象。 - -第一个参数command指需要运行的shell,第二个参数options指子进程的一些运行参数。 - -这些参数主要指timeout、killSignal、maxBuffer 。 - -如果设置了timeout则子进程会在超出timeout后发送信号killSignal,maxBuffer用来限制可接收的最大stdout和stderr大小。 - -2.wait(): Promise - -wait函数用来等待子进程运行结束,返回promise对象,其值为子进程的退出码。 - -3.getOutput(): Promise - -getOutput函数用来获取子进程的标准输出。 - -4.getErrorOutput(): Promise - -getErrorOutput函数用来获取子进程的标准错误输出。 - -5.close(): void - -close函数用来关闭正在运行的子进程。 - -6.kill(signo: number): void - -kill函数用来发送信号给子进程。 - -7.readonly killed: boolean - -killed表示信号是否发送成功。 - -8.readonly exitCode: number - -exitCode表示子进程的退出吗 - -9.pid和ppid - -分别代表子进程id和主进程id - -使用方法 -以ls命令为例 - - var child = childprocess.runCmd("ls", {maxBuffer:9999,killSignal:15} ); - var stdoutRes = child.getOutput(); - var stderrRes = child.getErrorOutput(); - var status = child.wait(); - stdoutRes.then(val=>{ - console.log("stdout = :" + val); - }); - stderrRes.then(val=>{ - console.log("stderr = :" + val); - }); - status.then(val=>{ - console.log("status = :" + val); - }); \ No newline at end of file +[base/compileruntime/js_sys_module/](base/compileruntime/js_sys_module-readme.md)