nodejs的进程process

process是一个全局变量,,可以直接调用。process的属性,如下:version:包含当前node实例的版本号;installPrefix:包含安装路径;platform:列举node运行的操作系统的环境,只会显示内核相关的信息,如:linux2, darwin,而不是“Redhat ES3” ,“Windows 7”,“OSX 10.7”等;pid:获取进程id;title:设置进程名称;execPath:当前node进程的执行路径,如:/usr/local/bin/node;memoryUsage():node进程内存的使用情况,rss代表ram的使用情况,vsize代表总内存的使用大小,包括ram和swap;heapTotal,process.heapUsed:分别代表v8引擎内存分配和正在使用的大小。argv:这是一个数组,数组里存放着启动这个node.js进程各个参数和命令代码;uptime():包含当前进程运行的时长(秒);getgid():获取或者设置group id;setuid():获取或者设计user id;cwd():当前工作目录;exit(code=0):kill当前进程;kill(pid, signal=’SIGTERM’):发出一个kill信号给指定pid;nextTick(callback):异步执行callback函数;umask([mask]) :设置进程的user mask值;

// 进程退出时执行process.on('exit', function(code) {// 进程退出之后将不再执行事件循环,所有回调函数的代码不会被执行setTimeout(function() {console.log('This will not run');}, 0);console.log('About to exit with code:', code);});// 注册了uncaughtException事件来捕捉系统异常,否则主事件循环的异常会把整个node进程宕掉process.on('uncaughtException', function (err) {  console.log('Caught exception: ' + err);});setTimeout(function () {  console.log('This will still run.');}, 500);nonexistentFunc();// 调用未定义的函数nonexistentFunc,所以会抛出异常console.log('This will not run.');process.nextTick(function(){console.log('tick')});输出:

事件exit: 当process退出时触发uncaughtException: 异常事件,使本node.js进程中断的异常Signal: 自定义事件例如:process.on(‘SIGNAL_ONE’, function(data){ console.log(data); process.exit(0);});//监听自定义事件process.emit(‘SIGNAL_ONE’, ‘Bye’);// 触发自定义事件控制台process.stdout 控制台输出流process.stdin 控制台输入流

子进程

child_process模块提供了四个创建子进程的函数,分别是spawn,exec,execFile和fork。其中spawn是最原始的创建子进程的函数,其他三个都是对spawn不同程度的封装。spawn只能运行指定的程序,参数需要在列表中给出,相当于execvp系统函数;而exec可以直接运行复杂的命令。原型如下:child_process.spawn(command, [args], [options]);child_process.exec(command, [options], callback);exec的实现原理是启动了一个系统shell来解析参数。fork函数用于直接运行Node.js模块,在父进程与子进程直接建立一个IPC管道,用于父子进程之间的通信。

幸福不是因为你拥有得多,而是由于你计较得少。

nodejs的进程process

相关文章:

你感兴趣的文章:

标签云: