node.js child_process 模块用法总结

王顶 -
node.js child_process 模块用法总结

调用外部程序的四个异步方法分别是:execFile, spawn, exec 和 fork,四个方法的返回值都是 ChildProcess 实例,ChildProcess 实例拥有 Process 的一部分常用功能,例如:pid, stdin, stdout, stderr,等。他们的具体用法以及区别如下:

execFile可以调用 js 脚本代码(执行 node a.js),也可以调用其他类型的程序;父子进程不分离,且不可设为父子进程分离,基于回调 Buffer 获取子进程输出;父子进程可以使用信号量通信;spawn可以调用 js 脚本代码(执行 node a.js),也可以调用其他类型的程序;默认父子进程不分离,可以设为父子进程分离,基于流获取子进程输出;父子进程可以使用信号量通信;exec可以调用 js 脚本代码(执行 node a.js),也可以调用其他类型的程序;可以使用 shell 外壳的一些用法,例如:重定向,管道操作,通配符,等;父子进程不分离,且不可设为父子进程分离,基于回调 Buffer 获取子进程输出;父子进程可以使用信号量通信;forkfork 方法只能调用 js 脚本代码,或者说专门用来调用 js 脚本代码,非 js 脚本的其他程序,不能调用;fork 方法默认父子进程分离,并基于流获取子进程输出;因为父子进程分离,所以子进程的流默认重定向到控制台;不需要像 spawn(detach=false),通过 pipe 调用将子进程的流重定向到父进程的 stdout 上;fork 除了信号量,还可以进程间通信;同步方法fork 没有同步方法,其他三个方法有同步方法。execSync 和 execFileSync 返回值 Buffer 就是子进程的输出结果。spawnSync 返回对象的 stdout Buffer 中是子进程的输出。
特别申明:本文内容来源网络,版权归原作者所有,如有侵权请立即与我们联系(cy198701067573@163.com),我们将及时处理。

Tags 标签

node.jschild-processipc

扩展阅读

加个好友,技术交流

1628738909466805.jpg