进程管理
2015-11-18 18:02
211 查看
七天学会NodeJS
var child_process = require('child_process'); var util = require('util'); /* * util.format(format, [...]) * 根据第一个参数,返回一个格式化字符串,类似printf的格式化输出 * 第一个参数是一个字符串,包含零个或多个占位符。 每一个占位符被替换为与其对应的转换后的值。 支持的占位符有: * %s - 字符串. * %d - 数字 (整型和浮点型). * %j - JSON. 如果这个参数包含循环对象的引用,将会被替换成字符串 '[Circular]'。 * %% - 单独一个百分号('%')。不会消耗一个参数。 * * * Process * 在NodeJS中,可以通过process对象感知和控制NodeJS自身进程的方方面面。另外需要注意的是,process不是内置模块,而是一个全局对象,因此在任何地方都可以直接使用 * Child Process * 使用child_process模块可以创建和控制子进程。该模块提供的API中最核心的是.spawn,其余API都是针对特定使用场景对它的进一步封装,算是一种语法糖 * Cluster * cluster模块是对child_process模块的进一步封装,专用于解决单进程NodeJS Web服务器无法充分利用多核CPU的问题。使用该模块可以简化多进程服务器程序的开发,让每个核上运行一个工作进程,并统一通过主进程监听端口和分发请求 */ function copy(source, target, callback) { child_process.exec( util.format('cp -r %s/* %s', source, target), callback); } copy('a', 'b', function (err) { console.log('jiji') // ... }); // 如果退出程序 /* * 通常一个程序做完所有事情后就正常退出了,这时程序的退出状态码为0。或者一个程序运行时发生了异常后就挂了,这时程序的退出状态码不等于0。如果我们在代码中捕获了某个异常,但是觉得程序不应该继续运行下去,需要立即退出,并且需要把退出状态码设置为指定数字,比如1 */ try { //a } catch(err) { process.exit(1) } // 如果获取命令行参数 function main(argv) { console.log(argv) } console.log(process.argv) main(process.argv.slice(2))
相关文章推荐
- 10+年程序员总结的20+条经验教训(转)
- POJ 2001 Shortest Prefixes (字典树模拟切割)
- linux设备树中pinctrl的配置(下)
- 常用数据库语言
- Socket-UDP
- iOS 应用程序沙盒的应用
- Python读写并且修改Excel
- Jquery 中a||""的含义
- JavaScript跨域请求RESTful Web Servic
- TextView TextField 上滑键盘
- sqlmap namespace ibatis 加载
- Shell脚本:判断当前目录下所有的文件类型
- 关于Jeecg互联网化dubbo改造方案
- 碎碎念:工作上的挑战和机遇etc.
- 关于获取IP 电脑获取准确手机获取的IP不准确
- php httpclient 获取cookie
- 八数码2
- UIlabel多行文字自动换行 (自动折行)
- Executors
- Qt程序启动画面播放(gif与swf两种动画格式) - 路上的脚印