Node.js接口
child_process子进程
# child_process子进程 #### maxBuffer 和 Unicode 指定 stdout 或 stderr 上允许的最大字节数。 如果超过这个值,则子进程终止。 这会影响包含多字节字符编码(例如 UTF-8 或 UTF-16)的输出。 #### 异步进程创建 - **child_process.spawn(command, args):**使用给定的 command 和 args 中的命令行参数衍生新进程。 如果省略,args 默认为空数组。 - **child_process.fork(modulePath, args):**child_process.spawn()的特例,专门用于衍生新的 Node.js 进程。 - **child_process.exec(command, options):**衍生shell,然后在该shell中执行command,缓冲任何生成的输出。 - **child_process.execFile(file, args[, callback]):**指定的可执行文件file直接作为新进程衍生 #### 同步进程创建 - **child_process.spawnSync(command, args)** - **child_process.execSync(command[, options])** - **child_process.execFileSync(file, args)** #### ChildProcess类 - > **事件:'close':**在进程结束并且子进程的 stdio 流关闭后触发。 > **事件:'disconnect':**在调用父进程中的 subprocess.disconnect() 方法或子进程中的 process.disconnect() 方法后触发。 断开连接后无法再发送或接收消息,subprocess.connected 属性为 false。 > **事件:'error':**发生错误后,'exit' 事件可能会触发,也可能不会触发。 同时监听 'exit' 和 'error' 事件时,防止意外调用处理程序函数多次。 > **事件:'exit':**触发 'exit' 事件时,子进程 stdio 流可能仍处于打开状态。 > **事件:'message':**消息经过序列化和解析。 结果消息可能与最初发送的消息不同。 > **事件:'spawn':**一旦子进程成功生成,就会触发'spawn'事件。 如果子进程没有成功生成,则不会触发'spawn'事件,而是触发'error'事件。 - > **subprocess.channel:**是对子 IPC 通道的引用。如果不存在IPC通道,则此属性为 undefined。 > **subprocess.connected:**指示是否仍然可以从子进程发送和接收消息。 > **subprocess.exitCode:**表示子进程的退出代码。如果子进程仍在运行,则该字段将为 null。 > **subprocess.signalCode:**表示子进程接收到的信号(如果有),否则为 null。 > **subprocess.spawnargs:**表示启动子进程时使用的命令行参数的完整列表。 > **subprocess.spawnfile:**表示启动的子进程的可执行文件名。 > **subprocess.stderr:**代表子进程的 stderr 的 Readable Stream。 > **subprocess.stdin:**代表子进程的 stdin 的 Writable Stream。 > **subprocess.stdio:**到子进程的管道稀疏数组,对应于传递给 child_process.spawn() 的 stdio 选项中已设置为值 'pipe' 的位置。 > **subprocess.stdout:**代表子进程的 stdout 的 Readable Stream。 > **subprocess.killed:**表示子进程是否成功接收到来自 subprocess.kill() 的信号。 killed 属性并不表示子进程已经终止。 > **subprocess.pid:**返回子进程的进程标识符 (PID)。 如果子进程由于错误而未能生成,则值为 undefined 并触发 error。 - > **subprocess.ref():**在调用 subprocess.unref() 之后调用 subprocess.ref() 将恢复为子进程删除的引用计数,迫使父进程在退出自身之前等待子进程退出。 > **subprocess.channel.unref():**使IPC通道不保持父进程的事件循环运行,并让它在通道打开时完成。 > **subprocess.channel.ref():**使IPC通道保持父进程的事件循环运行。 > **subprocess.disconnect():**关闭父子之间的 IPC 通道,允许子级在没有其他连接保持活动状态时优雅地退出。 > **subprocess.kill([signal]):**向子进程发送信号。如果没有给出参数,进程将被发送 'SIGTERM' 信号。 > **subprocess.send(message, sendHandle[, options]):**当父进程和子进程之间已经建立了 IPC 通道时(即使用 child_process.fork() 时),向子进程发送消息 > **subprocess.unref():**默认情况下,父进程将等待分离的子进程退出。 为了防止父进程等待给定的 subprocess 退出,则使用 subprocess.unref() 方法。 这样做会使父进程的事件循环不将子进程包括在其引用计数中,从而允许父进程独立于子进程退出,除非在子进程和父进程之间建立了 IPC 通道。
顶部
收展
底部
[TOC]
目录
CommonJS 模块
package包模块
全局对象
http超文本传输协议
util实用工具
buff缓冲区
断言测试
EventEmitter事件
child_process子进程
相关推荐
Node.js教程:新手入门
Node.js:ExpressWeb
朴灵《深入浅出 Node.js》