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爬虫获取数据简单实现代码
Mar 29 NodeJs
NodeJs——入门必看攻略
Jun 27 NodeJs
详解nodejs 文本操作模块-fs模块(三)
Dec 22 NodeJs
nodejs使用express创建一个简单web应用
Mar 31 NodeJs
mac下的nodejs环境安装的步骤
May 24 NodeJs
NodeJS实现不可逆加密与密码密文保存的方法
Mar 16 NodeJs
Nodejs 发布自己的npm包并制作成命令行工具的实例讲解
May 15 NodeJs
nodejs中express入门和基础知识点学习
Sep 13 NodeJs
Nodejs实现用户注册功能
Apr 14 NodeJs
nodejs log4js 使用详解
May 31 NodeJs
纯异步nodejs文件夹(目录)复制功能
Sep 03 NodeJs
Nodejs在局域网配置https访问的实现方法
Oct 17 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
从零开始的异世界生活:第二季延期后,B站上架了第二部剧场版
2020/05/06 日漫
攻克CakePHP系列二 表单数据显示
2008/10/22 PHP
ThinkPHP中的关联模型注意点
2014/06/16 PHP
Laravel的throttle中间件失效问题解决方法
2016/10/09 PHP
PHP Trait代码复用类与多继承实现方法详解
2019/06/17 PHP
php use和include区别总结
2019/10/13 PHP
Yii框架 session 数据库存储操作方法示例
2019/11/18 PHP
js正则表达式的使用详解
2013/07/09 Javascript
javascript解析json实例详解
2014/11/05 Javascript
如何用JavaScript实现动态修改CSS样式表
2016/05/20 Javascript
js 实现数值的千分位及保存小数方法(推荐)
2016/08/01 Javascript
jQuery弹出div层过2秒自动消失
2016/11/29 Javascript
jQuery validate 验证radio实例
2017/03/01 Javascript
jquery ztree实现右键收藏功能
2017/11/20 jQuery
如何在Vue.js中实现标签页组件详解
2019/01/02 Javascript
vue实现的仿淘宝购物车功能详解
2019/01/27 Javascript
在vue项目中使用codemirror插件实现代码编辑器功能
2019/08/27 Javascript
JavaScript判断浏览器版本的方法
2019/11/03 Javascript
python 基础学习第二弹 类属性和实例属性
2012/08/27 Python
Python实现的百度站长自动URL提交小工具
2014/06/27 Python
Python科学计算之NumPy入门教程
2017/01/15 Python
Linux CentOS7下安装python3 的方法
2018/01/21 Python
python中实现控制小数点位数的方法
2019/01/24 Python
对IPython交互模式下的退出方法详解
2019/02/16 Python
Python实现带下标索引的遍历操作示例
2019/05/30 Python
Python二元赋值实用技巧解析
2019/10/25 Python
如何基于Python创建目录文件夹
2019/12/31 Python
Python字符串hashlib加密模块使用案例
2020/03/10 Python
Python自动创建Excel并获取内容
2020/09/16 Python
python线程池 ThreadPoolExecutor 的用法示例
2020/10/10 Python
香港现代设计家具品牌:Ziinlife Furniture
2018/11/13 全球购物
小学毕业典礼演讲稿
2014/09/09 职场文书
中学推普周活动总结
2015/05/07 职场文书
mysql5.7的安装及Navicate长久免费使用的实现过程
2021/11/17 MySQL
怎么禁用Windows 11快照布局? win11不使用快照布局的技巧
2021/11/21 数码科技
python实现双向链表原理
2022/05/25 Python