读书笔记《七天学会NodeJS》(3) - 进程管理
0. 进程 Node进程主要用来控制处理自身进程运行环境和状态,也可创建新的进程以协同处理某些任务,此时充当调度器作用。 1. process全局对象,表示当前NodeJS自身进程的对象。 2. child_process子进程模块,可创建和控制子进程,child_process.spawn创建进程(三个参数分别为可执行文件路径、命令行参数、配置子进程的执行环境与行为),此外exec等API对其进行封装。 3. cluster模块,对child_process模块的进一步封装,可简化多进程服务器的开发,充分利用多核,通过主进程监听端口和分发请求。 4. 其他 process.argv可获取进程的命令行参数,不过argv[0]和argv[1]分别占据了node可执行文件路径和主模块文件名路径,故而真正的参数argv[2]开始的。 process.exit退出进程并设置退出错误码。 process.stdin、process.stdout、process.stderr分别为标准输入流和标准输入流、标准错误流。 nodejs进程间通信可通过IPC机制实现,即通过spawn函数的第三个参数设置option.stdio选项为ipc,即stdio: [ 0, 1, 2, 'ipc' ],其中0,1,2分别为标准输入、输出、错误流。 守护进程:一般用于监控工作进程的运行状态,在工作进程不正常退出时重启工作进程,保障工作进程不间断运行, 守护进程的一种实现方式(daemon.js): function spawn(mainModule) { var worker = child_process.spawn('node', [ mainModule ]); worker.on('exit', function (code) { if (code !== 0) { spawn(mainModule); } }); } spawn('worker.js');。 ......