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. SuperMemo

    SuperMemo Your friend, Jackson is invited to a TV show called SuperMemo in which the participant is ...

  2. excel中怎么将行转换为列及列转换成行

    操作方法 01 选中要把行转换为列的数据.然后点击键盘上的ctrl+c. 02 在需要放置的单元格上,右键点击,然后点击菜单上的‘选择性粘贴’. 03 在弹出的窗口上,点击勾选上‘转置’.点击确定按钮 ...

  3. PyInstaller把Python脚本打包成可执行程序教程

    一.说明 一直以来都有把.py文件打包成.exe文件的想法,但总是不够强烈,每次拖着拖着就淡忘了. 昨天帮硬件部门的同事写了个脚本,然后今天下午的时候,他问有没有办法把脚本打包成可执行文件,这样方便以 ...

  4. CentOS7 mysql 连接不上 :[ERROR] InnoDB: The innodb_system data file 'ibdata1' must be writable

    mysql一直连接不上我的数据库,输入密码也进不去mysql. 报连接不上服务的错误. Can 't connect to local MySQL server through socket '/tm ...

  5. 查看电脑已保存的wifi及密码

    1. 查看以保存的wifi名称  打开cmd(win+r) #查看已保存WiFi名称 netsh wlan show profiles 2. 查看已保存的wifi的密码 netsh wlan show ...

  6. 关于redis key命名规范的设计

    一.实现目标 简洁,高效,可维护 二.键值设计规约 1 . Redis key命名风格 [推荐]Redis key命名需具有可读性以及可管理性,不该使用含义不清的key以及特别长的key名: [强制] ...

  7. spring cloud应用

    1.什么是注册中心 (1)就是首先有一个eureka server,服务的注册与发现的中心(2)你如果写好了一个服务,就可以将其注册到eureka server上去(3)然后别人的服务如果要调用你的服 ...

  8. Linux下mongoDB下载与安装

    原文连接:(http://www.studyshare.cn/blog/details/1168/0)一.下载 官网下载:点击下载 选择合适的版本 百度网盘下载:点击下载  提取码:rm12 此处提供 ...

  9. ex_gcd求不定方程的最小正整数解

    #include<bits/stdc++.h> using namespace std; int gcd(int a,int b) {return b?gcd(b,a%b):a;} int ...

  10. PHP extension_loaded()用法

    一.extension_loaded()函数表示检查一个扩展是否成功加载 if(!extension_loaded('sysvmsg')) { echo "Please install sy ...