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正式课 网络爬虫的更多相关文章

  1. pm2使用 node 进程管理

    1.问题 使用阿里云服务器时遇到一个问题,就是只能开一个命令窗口,加入运行node服务,只能起一个服务,不能启多个服务.pm2可以解决这个问题. 2.pm2简介 官网:https://pm2.keym ...

  2. 珠峰培训node正式课--【笔记】|全局对象 | process | util | fs | stream 流

    全局对象: console  : __filename     ; __dirname     ; setTimeOut     ; setImmediate(把参数函数放在下一个环节执行) proc ...

  3. 珠峰培训node 珠峰爬虫| cron 定时任务

    1.cron 定时任务 CronJob var CronJob = require('cron').CronJob; // 秒 分钟 时 天

  4. async 珠峰培训node正式课笔记 【async】任务流程控制,异步流程控制

    var async = require('async'); // series 串形任务 console.time('cost') async.series({ two:function(callba ...

  5. 关于node.js的进程管理

    如果是单纯的运行一个node进程,那会比较简单,例如: node ./example.js 但是一般来说,当我们运行一个node进程之后,我们可能希望对这个进程进行更多的管理,例如,当node程序是一 ...

  6. 服务器端配置nodejs环境(使用pm2进程管理运行)

    一.brew安装: 由于Mac没有装ubantu,所以不能用apt-get命令,在本地命令行下Mac安装homebrew替代:  https://brew.sh 二.新开命令窗口,登录root用户,安 ...

  7. nodeJS进程管理器pm2

    pm2是一个带有负载均衡功能的Node应用的进程管理器.当你要把你的独立代码利用全部的服务器上的所有CPU,并保证进程永远都活着,0秒的重载, PM2是完美的. PM2是开源的基于Nodejs的进程管 ...

  8. Linux_CentOS下搭建Nodejs 生产环境-以及nodejs进程管理器pm2的使用

    nodejs安装:https://www.cnblogs.com/loaderman/p/11596661.html nodejs 进程管理器 pm2 的使用 PM2 是一款非常优秀的 Node 进程 ...

  9. Node.js的进程管理

    众所周知Node基于V8,而在V8中JavaScript是单线程运行的,这里的单线程不是指Node启动的时候就只有一个线程,而是说运行JavaScript代码是在单线程上,Node还有其他线程,比如进 ...

随机推荐

  1. 在vue-cli中安装element

    在vue-cli中安装elemnent-ui 的步骤 在安装vue-cli 的基础上进行安装 1.npm i element-ui -S 安装element-cli 安装之后会在项目中的node_mo ...

  2. thinkphp 6.0 swoole扩展websocket使用教程

    前言 ThinkPHP即将迎来最新版本6.0,针对目前越来越流行Swoole,thinkphp也推出了最新的扩展think-swoole 3.0. 介绍 即将推出的tp6.0,已经适配swoole.并 ...

  3. 如何申请腾讯地图用户Key

    打开网页https://lbs.qq.com/,进入腾讯位置服务. 单击[登录],登录腾讯账号(本文以QQ登录为例),如果首次登陆腾讯位置服务,则提示注册开发者账号. 选择箭头处[注册新账号].填写手 ...

  4. Java学习:JDBC快速入门

    本节类容 JDBC基本概念 快速入门 JDBC基本概念 概念: Java DataBase Connectivity Java 数据库连接,Java语言操作数据库 JDBC本质: 其实是官方(sun公 ...

  5. Replication:The replication agent has not logged a progress message in 10 minutes.

    打开Replication Monitor,在Subscription Watch List Tab中,发现有大量的status= “Performance critical” 的黄色Warning, ...

  6. 一文搞懂 Flink 网络流控与反压机制

    https://www.jianshu.com/p/2779e73abcb8 看完本文,你能get到以下知识 Flink 流处理为什么需要网络流控? Flink V1.5 版之前网络流控介绍 Flin ...

  7. vs2017专业版和企业版的密钥

    Enterprise: NJVYC-BMHX2-G77MM-4XJMR-6Q8QF Professional: KBJFW-NXHK6-W4WJM-CRMQB-G3CDH

  8. BAPI_TRANSACTION_COMMIT

    通过NCO执行SAP里面的 BAPI_TRANSACTION_COMMIT 并不能直接生效,类似SQL 里面的事物一样,需要有开始与结束,正确的方式如下: RfcSessionManager.Begi ...

  9. 实验代码:const* 和 const&

  10. Puppet自动化管理配置

    Puppet:开源系统配置和管理工具 随着虚拟化和云计算技术的兴起,计算机集群的自动化管理和配置成为了数据中心运维管理的热点.对于 IaaS.Paas.Saas 来说,随着业务需求的提升,后台计算机集 ...