在之前的Nodejs概述中有提到,process指的是当前的进程,是个全局的变量,在任何地方都可以调用它,而不需要ruqire来加载
1.退出码
当进程结束的时候,会返回一个整数值,表示退出时的状态。一下是常用的退出码:
- 0,正常退出
- 1,发生未捕获错误
- 5,V8执行错误
- 8,不正确的参数
- 128 + 信号值,如果Node接受到退出信号(比如SIGKILL或SIGHUP),它的退出码就是128加上信号值。由于128的二进制形式是10000000, 所以退出码的后七位就是信号值
2.常用属性
- process.argv:返回当前进程的命令行参数数组
- process.env:返回一个对象,成员为当前Shell的环境变量,比如process.env.HOME
- process.installPrefix:node的安装路径的前缀,比如/usr/local,则node的执行文件目录为/usr/local/bin/node
- process.pid:当前进程的进程号
- process.platform:当前系统平台,比如Linux
- process.title:默认值为“node”,可以自定义该值
- process.version:Node的版本,比如v0.10.18
3.process.env
十分非常超级重要的属性,
- 在Confige中,一般设置端口的时候会用
port: process.env.PORT || 9178
来设置默认端口或者当前进程的端口号 - 在Config中,在设置当前的环境变量的时候,同样会用
process.env.NODE_ENV
这样可以确定当前所处的开发阶段。生产阶段设为production,开发阶段设为develop或staging,然后在脚本中读取process.env.NODE_ENV即可
4.process的一些自带方法
1. process.chdir():切换工作目录到指定目录。
2. process.cwd():返回运行当前脚本的工作目录的路径。
3. process.exit():退出当前进程。
4. process.getgid():返回当前进程的组ID(数值)。
5. process.getuid():返回当前进程的用户ID(数值)。
6. process.nextTick():指定回调函数在当前执行栈的尾部、下一次Event Loop之前执行。
7. process.on():监听事件。
8. process.setgid():指定当前进程的组,可以使用数字ID,也可以使用字符串ID。
9. process.setuid():指定当前进程的用户,可以使用数字ID,也可以使用字符串ID。
5.process.cwd(),process.chdir()
cwd方法返回的是当前目录(绝对路径),chdir方法用来切换目录
来一段代码看看吧:
process.cwd()
/home/aaa
process.chdir(‘/home/bbb’)
process.cwd()
/home/bbb’
6.process.nextTick()
将任务放在当前一轮事件循环(Event loop)的最后面
process.nextTick(function(){
console.log(”)
})
当然,我们大部分所见的代码都是利用setTimeout(function(){
console.log(”)
},0)
虽然nextTick的效率更高,因为系统不会检查设定的指定时间,但是据我所见,用的更多的还是setTimeout方法
7.process.on()
监听当前进程的各种事件,并制定回调函数
process.on('SIGINT', function () {
console.log('Got a SIGINT. Goodbye cruel world');
process.exit(0);
});
process支持的时间有两个种类
- data事件:数据输出输入时触发
- SIGINT事件:接收到系统信号时触发