nodejs 子进程正确的打开方式


Posted in NodeJs onJuly 03, 2017

因为库太拙了,需要在 nodejs 里调用子进程来获取数据。然而看到 child_process 的文档真是头疼,这么多种启动子进程的方法直接推到人面前,也没个解释,命名也十分无用。只能一个个地查看详细说明来找到应该使用的那个……所以我整理了一下。

首先是同步创建子进程的那几个函数。会阻塞 nodejs 的主循环。无用。(要是写小脚本的话我直接上 shell 或者 Python 了,干嘛跟自己过不去呢。)

exec :调用 shell 来执行命令的。这部分跟「exec」这个词的 UNIX/C 语义刚好相反。

execFile :不调用 shell,直接执行命令。这命名不明所以。

fork :执行一个 新的 nodejs 进程,并且建立一个专用的 IPC 通道。子进程除了 IPC 通道外与父进程无任何瓜葛!命名真是一如既往地误人子弟。默认使用与父进程相同的可执行文件(nodejs 版本),也可以另外指定。

spawn :相当于 Python 的 subprocess,可以指定是否使用 shell。默认不使用 shell。也支持 cwd 啊 env 啊 argv0 啊之类的参数。

结论:如果需要用 Python 的 subprocess.run / Popen 类似的功能,就使用 child_process.spawn 。 exec 开头的那个函数似乎没啥大用,大概跟 subprocess 的 getoutput / check_call 之类的一样只是有一些预设而已吧。

NodeJs 相关文章推荐
nodejs之请求路由概述
Jul 05 NodeJs
NodeJS中Buffer模块详解
Jan 07 NodeJs
NodeJS和BootStrap分页效果的实现代码
Nov 07 NodeJs
详解nodejs 文本操作模块-fs模块(五)
Dec 23 NodeJs
Nodejs多站点切换Htpps协议详解及简单实例
Feb 23 NodeJs
nodejs基于express实现文件上传的方法
Mar 19 NodeJs
详解NodeJs开发微信公众号
May 25 NodeJs
nodejs分离html文件里面的js和css的方法
Apr 09 NodeJs
nodejs读取图片返回给浏览器显示
Jul 25 NodeJs
Nodejs监听日志文件的变化的过程解析
Aug 04 NodeJs
nodeJs的安装与npm全局环境变量的配置详解
Jan 06 NodeJs
Nodejs 微信小程序消息推送的实现
Jan 20 NodeJs
Express+Nodejs 下的登录拦截实现代码
Jul 01 #NodeJs
NodeJS实现图片上传代码(Express)
Jun 30 #NodeJs
详解nodejs实现本地上传图片并预览功能(express4.0+)
Jun 28 #NodeJs
NodeJS链接MySql数据库的操作方法
Jun 27 #NodeJs
NodeJS自定义模块写法(详解)
Jun 27 #NodeJs
docker中编译nodejs并使用nginx启动
Jun 23 #NodeJs
NodeJs中express框架的send()方法简介
Jun 20 #NodeJs
You might like
file_get_contents("php://input", "r")实例介绍
2013/07/01 PHP
Yii2 输出xml格式数据的方法
2016/05/03 PHP
PHP操作mysql数据库分表的方法
2016/06/09 PHP
Thinkphp 框架配置操作之动态配置、扩展配置及批量配置实例分析
2020/05/15 PHP
使用IE的地址栏来辅助调试Web页脚本
2007/03/08 Javascript
JavaScript实现维吉尼亚(Vigenere)密码算法实例
2013/11/22 Javascript
基于jQuery实现表单提交验证
2014/11/24 Javascript
JavaScript自定义数组排序方法
2015/02/12 Javascript
JavaScript中数据结构与算法(一):栈
2015/06/19 Javascript
深入php面向对象、模式与实践
2016/02/16 Javascript
Bootstrap开关(switch)控件学习笔记分享
2016/05/30 Javascript
angular实现form验证实例代码
2017/01/17 Javascript
JavaScript中将值转换为字符串的五种方法总结
2019/06/06 Javascript
基于Element封装一个表格组件tableList的使用方法
2020/06/29 Javascript
JS实现页面鼠标点击出现图片特效
2020/08/19 Javascript
整理Python最基本的操作字典的方法
2015/04/24 Python
Python爬虫之模拟知乎登录的方法教程
2017/05/25 Python
读取json格式为DataFrame(可转为.csv)的实例讲解
2018/06/05 Python
Python实现端口检测的方法
2018/07/24 Python
Python+Xlwings 删除Excel的行和列
2020/12/19 Python
matplotlib实现数据实时刷新的示例代码
2021/01/05 Python
深入了解canvas在移动端绘制模糊的问题解决
2019/04/30 HTML / CSS
马来西亚和新加坡巴士票在线预订:CatchThatBus
2018/11/17 全球购物
五一服装活动方案
2014/01/11 职场文书
跑操口号
2014/06/12 职场文书
事业单位人员的自我评价范文
2014/09/21 职场文书
家庭贫困证明
2014/09/23 职场文书
2014年电工工作总结
2014/11/20 职场文书
社会实践活动总结
2015/02/05 职场文书
施工员岗位职责
2015/02/10 职场文书
银行招聘自荐信
2015/03/06 职场文书
元素水平垂直居中的方式
2021/03/31 HTML / CSS
浅谈CSS不规则边框的生成方案
2021/05/25 HTML / CSS
pytorch 实现多个Dataloader同时训练
2021/05/29 Python
Python爬虫网络请求之代理服务器和动态Cookies
2022/04/12 Python
MySQL 数据 data 基本操作
2022/05/04 MySQL