node 进程管理 child_process [spawn,exec] | 珠峰培训node正式课 网络爬虫
run.js
var i = 0;
function set(){
i++
setTimeout(function(){
console.log(i)
if(i<5){
set();
}
},1000)
}set();
child_process demo
var child_process = require('child_process');
var fs = require('fs');
// spawn 是个流对象,可以通过监听它的data事件来获取里面的控制台输出
// exec 命令执行完毕后调用回调函数 stdout 存放子进程‘执行完毕’后所有的输出内容
// 创建一个 执行命令 用 spawn
function execNodeFile(fileName){
// spawn 第一个参数:可执行文件的名字
// process.execPath;当前执行文件的路径 也就是node
var pro = child_process.spawn(process.execPath,[fileName])
// 把子进程的标准输出注入到当前主进程的标准输出
pro.stdout.pipe(process.stdout);
pro.stderr.pipe(process.stderr);
// 当子进程出错的时候
pro.on('error',function(err){
console.log(err);
})
// 当子进程结束也关闭主进程
pro.on('close',function(){
console.log('pro is close!')
// process.exit();
})
}
execNodeFile('run.js');//console.log('chil process run.js');
// 创建一个 子进程 执行命令 用 exec
function execNodeFile2(cmdorder){
child_process.exec(cmdorder, (error, stdout, stderr) => {
if (error) {
throw error;
}
console.log(stdout);//stdout 子进程‘执行完毕’后所有的输出结果
});
}
execNodeFile2('node run.js');//console.log('chil process run.js');
// 创建一个 下载命令
function download(url){
var fileName = url.split('/').pop();
// 创建一个可写流实例
var ws = fs.createWriteStream('./temp/'+fileName);
var curl = child_process.spawn('curl',[url]);
curl.stdout.on('data',function(data){
ws.write(data)
})
curl.stdout.on('end',function(){
ws.end();
})
}
download("http://xyq.cbg.163.com/cgi-bin/equipquery.py?act=overall_search_show_detail&serverid=127&ordersn=280_1502047682_282090408&equip_refer=1")
function download_1(url){//会报错
// var fileName = url.split('/').pop();
child_process.exec('curl '+url+' -o page2.txt',function(err,stdout,stderr){
if(err){
console.log(err)
return;
}
console.log(stdout)
});
}
download_1("http://xyq.cbg.163.com/cgi-bin/equipquery.py?act=overall_search_show_detail&serverid=127&ordersn=280_1502047682_282090408&equip_refer=1")
node 进程管理 child_process [spawn,exec] | 珠峰培训node正式课 网络爬虫的更多相关文章
- pm2使用 node 进程管理
1.问题 使用阿里云服务器时遇到一个问题,就是只能开一个命令窗口,加入运行node服务,只能起一个服务,不能启多个服务.pm2可以解决这个问题. 2.pm2简介 官网:https://pm2.keym ...
- 珠峰培训node正式课--【笔记】|全局对象 | process | util | fs | stream 流
全局对象: console : __filename ; __dirname ; setTimeOut ; setImmediate(把参数函数放在下一个环节执行) proc ...
- 珠峰培训node 珠峰爬虫| cron 定时任务
1.cron 定时任务 CronJob var CronJob = require('cron').CronJob; // 秒 分钟 时 天
- async 珠峰培训node正式课笔记 【async】任务流程控制,异步流程控制
var async = require('async'); // series 串形任务 console.time('cost') async.series({ two:function(callba ...
- 关于node.js的进程管理
如果是单纯的运行一个node进程,那会比较简单,例如: node ./example.js 但是一般来说,当我们运行一个node进程之后,我们可能希望对这个进程进行更多的管理,例如,当node程序是一 ...
- 服务器端配置nodejs环境(使用pm2进程管理运行)
一.brew安装: 由于Mac没有装ubantu,所以不能用apt-get命令,在本地命令行下Mac安装homebrew替代: https://brew.sh 二.新开命令窗口,登录root用户,安 ...
- nodeJS进程管理器pm2
pm2是一个带有负载均衡功能的Node应用的进程管理器.当你要把你的独立代码利用全部的服务器上的所有CPU,并保证进程永远都活着,0秒的重载, PM2是完美的. PM2是开源的基于Nodejs的进程管 ...
- Linux_CentOS下搭建Nodejs 生产环境-以及nodejs进程管理器pm2的使用
nodejs安装:https://www.cnblogs.com/loaderman/p/11596661.html nodejs 进程管理器 pm2 的使用 PM2 是一款非常优秀的 Node 进程 ...
- Node.js的进程管理
众所周知Node基于V8,而在V8中JavaScript是单线程运行的,这里的单线程不是指Node启动的时候就只有一个线程,而是说运行JavaScript代码是在单线程上,Node还有其他线程,比如进 ...
随机推荐
- 码医自学法V2.2(附名老中医)
这段时间经常有网友微信公众号问我怎么入门'中医' 我贴下我自己的学习方法(仅供参考) 基础回顾:https://www.cnblogs.com/dunitian/p/7483038.html PS:自 ...
- losetup命令使用
1.losetup命令 Linux系统losetup命令用来设置循坏设备,循坏设备可以把文件虚拟成块设备,借此来模拟整个文件系统,让用户得以将其视为硬盘驱动器,光驱等设备,并挂入当作目录来使用. (1 ...
- Akka-CQRS(8)- CQRS Reader Actor 应用实例
前面我们已经讨论了CQRS-Reader-Actor的基本工作原理,现在是时候在之前那个POS例子里进行实际的应用示范了. 假如我们有个业务系统也是在cassandra上的,那么reader就需要把从 ...
- Python将背景图片的颜色去掉
一.问题 在使用图片的时候有时候我们希望把背景变成透明的,这样就只关注于图片本身.比如在连连看中就只有图片,而没有背景,其实我个人感觉有背景好看一点. 二.解决 我们需要使用RGBA(Red,Gr ...
- async与await总结
全手打原创,转载请标明出处:https://www.cnblogs.com/dreamsqin/p/11533174.html,多谢,=.=~ 抛出3个疑问: 1.async是干哈的? 2.await ...
- 思维导图xmind的文档保存问题
如果文件名相同,可能最新的文档覆盖以前的.当前活动文档只能有一个,如果有多个,保存后,其他活动文档也被更新了. 新建一个空白doc文档,仅仅是文件名,作为附件导入到xmind中,在xmind中保存后, ...
- 【转载】socket通信-C#实现tcp收发字符串文本数据
在日常碰到的项目中,有些场景需要发送文本数据,也就是字符串,比如简单的聊天文字,JSON字符串等场景.那么如何如何使用SharpSocket来收发此类数据呢?其中要掌握的关键点是什么呢? 点击查看原博 ...
- 解决Spring Boot 从1.x升级到 2.x 后 单点登陆(SSO)问题
解决Spring Boot 从1.x升级到 2.x 后 单点登陆(SSO)问题 在学习Spring Cloud 时,遇到了授权服务oauth 相关内容时,总是一知半解,因此决定先把Spring S ...
- 单词CAEMENT水泥CAEMENT英文
caement Archaic spelling of cement. caement Alternative forms caement (archaic) c?ment (archaic) Hyp ...
- 面试题:java内存中的堆区和数据结构中的堆有什么区别
java内存中的堆是一个 链表, 数据结构中的堆:就是一个栈