- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
ChildProcess汇编
文档首页
英文版文档
本作品采用知识共享署名-非商业性使用 3.0 未本地化版本许可协议进行许可。
索引?|?在单一页面中浏览?|?JSON格式
子进程
类: ChildProcess
事件: error
事件: exit
事件: close
事件: disconnect
事件: message
child.stdin
child.stdout
child.stderr
child.pid
child.kill([signal])
child.send(message, [sendHandle])
例子: 发送一个server对象
示例: 发送socket对象
child.disconnect()
child_process.spawn(command, [args], [options])
child_process.exec(command, [options], callback)
child_process.execFile(file, args, options, callback)
child_process.fork(modulePath, [args], [options])
子进程#
稳定度: 3 - 稳定
Node 通过?child_process?模块提供了类似?popen(3)?的处理三向数据流(stdin/stdout/stderr)的功能。
它能够以完全非阻塞的方式与子进程的?stdin、stdout?和?stderr?以流式传递数据。(请注意,某些程序在内部使用行缓冲 I/O。这不会影响到 node.js,但您发送到子进程的数据不会被立即消费。)
使用?require(child_process).spawn()或者?require(child_process).fork()?创建子进程,这两种方法的语义有些区别,下文将会解释。
ChildProcess?是一个?EventEmitter。
子进程有三个与之关联的流:child.stdin、child.stdout?和?child.stderr。它们可以共享父进程的 stdio 流,也可以作为独立的被导流的流对象。
ChildProcess 类不能直接被使用, 使用?spawn()?或者?fork()?方法创建一个 Child Process 实例。
err?{Error Object} 错误。
发生于:
进程不能被创建, 或者
进程不能被终止掉, 或者
由任何原因引起的数据发送到子进程失败.
参阅?ChildProcess#kill()?和?ChildProcess#send()。
code?{Number} 假如进程正常退出,则为它的退出代码。
signal?{String} 假如是被父进程终止,则为所传入的终止子进程的信号。
这个事件是在子进程被结束的时候触发的. 假如进程被正常结束,‘code’就是退出进程的指令代码, 否则为null. 假如进程是由于接受到signal结束的,?signal?就代表着信号的名称, 否则为null.
注意子进程的 stdio 流可能仍为开启状态。
参阅waitpid(2).
code?{Number} 假如进程正常退出,则为它的退出代码。
signal?{String} 假如是被父进程终止,则为所传入的终止子进程的信号。
这个事件会在一个子进程的所有stdio流被终止时触发, 这和exit事件有明显的不同,因为多进程有时候会共享同一个stdio流
在子进程或父进程中使用使用.disconnect()方法后,这个事件会被触发,在断开之后,就不可能再相互发送信息了。可以通过检查子进程的child.connected属性是否为true去检查是否可以发送信息
message?{Object} 一个已解析的JSON对象或者原始类型值
sendHandle?{Handle object} 一个socket 或者 server对象
通过.send()发送的信息可以通过监听message事件获取到
{Stream object}
子进程的stdin是一个‘可写流’,通过end()方法关闭该可写流可以终止子进程,
假如子进程的stdio流与父线程共享,这个child.stdin不会被设置
{Stream object}
子进程的stdout是个可读流.
假如子进程的stdio流与父线程共享,这个child.stdin不会被设置
{Stream object}
子进程的stderr是一个可读流
假如子进程的stdio流与父线程共享,这个child.stdin不会被设置
{Integer}
子进程的PID
实例:
signal?{String}
发送一个信号给子线程. 假如没有给参数, 将会发送?SIGTERM. 参阅?s
文档评论(0)