一个process对象是一个 EventEmitter实例。
事件类型:
1.exit:
当进程结束的时候发出此事件,一旦执行退出事件,所有的消息队列都会终止,所以必须保证消息的并发性。
process.on('exit', function(code) {
// do *NOT* do this
setTimeout(function() {
console.log('This will not run');
}, 0);
console.log('About to exit with code:', code);
});
2.uncaughtException:
当程序出现异常的时候,会在消息队列里面转一圈,如果没有捕捉或者响应的。就会发出uncaughtException事件,如果这个事件也没有处理,就会执行关闭退出进程的操作。
process.on('exit', function(code) { // do *NOT* do this setTimeout(function() { console.log('This will not run'); }, 0); console.log('About to exit with code:', code); });
3.SIGINT:我一直没搞懂信号是个啥玩意。
// Start reading from stdin so we don't exit. process.stdin.resume(); process.on('SIGINT', function() { console.log('Got SIGINT. Press Control-D to exit.'); });
进程的三个流,但是应该不会用到
process.stdout
process.stderr
process.stdin
process.argv:一个数组,存放命令的参数。
process.execArgv:一个参数,存放命令行的选项,与上面的那个数组放的内容是不重叠的。
$ node --harmony script.js --version ['--harmony'] ['/usr/local/bin/node', 'script.js', '--version']
process.abort():掉用此方法,将发出一个abort事件,然后关闭进程,并生成一个核心文件。
process.chdir(directory):改变进程当前的工作目录,失败会抛出异常。
process.cwd():一个绝对路径,当前进程执行的那个node.js路径。
process.env:里面记录的是当前的系统信息。
process.exit(0):退出进程,0表示成功退出进程。
process.getgid():
process.setgid(id):
process.getuid():
process.setuid(id):
process.getgroups():
process.setgroups(groups):
process.initgroups(user, extra_group):
process.version:进程的版本信息
process.versions:进程的版本信息和他的依赖项版本信息
process.config:
process.kill(pid,[signal]):它是一个信号发送器,pid是进程ID,signal是信号类型。杀死进程也是用这个来操作的。
process.pid:
process.title:
process.arch:当前的处理器架构类型。
process.platform:当前的操作系统类型。
process.memoryUsage():获取内存使用率,以字节为单位。
process.nextTick(callback):在下次事件循环中处理回调函数。比setTimeout(fn,0)快和精确。
process.maxTickDepth:
这个没有搞明白是什么含义
process.umask([mask]):
这个也没搞懂
process.uptime():进程已经运行的时间
process.hrtime():
这个也没搞懂