前言
Node作为在前端以及中台方面的应用我觉得是挺广泛的,当然守护Node服务进程方式也不止三种,本文主要介绍三种比较主流的方式。
方式介绍
一、 forever
forever是一个nodejs守护进程,完全由命令行操控。forever会监控nodejs服务,并在服务挂掉后进行重启。
//安装 forever npm install forever -g//启动服务service forever start//使用 forever 启动 js 文件forever start index.js//停止 js 文件forever stop index.js//启动js文件并输出日志文件forever start -l forever.log -o out.log -e err.log index.js//重启js文件forever restart index.js//查看正在运行的进程forever list
二、pm2
pm2是一个进程管理工具,可以用它来管理你的node进程,并查看node进程的状态,当然也支持性能监控,进程守护,负载均衡等功能
npm install -g pm2 //全局安装pm2 start app.js // 启动pm2 start app.js -i max //启动 使用所有CPU核心的集群pm2 stop app.js // 停止pm2 stop all // 停止所有pm2 restart app.js // 重启pm2 restart all // 重启所有pm2 delete app.js // 关闭
三、nohub
nohub是node自带的的进程守护工具,不需要安装别的包。不过有一个缺点,就是关闭终端后,服务也就关闭了。
nohup node server.js &//注意:nohup命令不会自动把进程变为"后台任务",所以必须加上&符号。
说明:nohup 命令对 server.js 进程做了三件事:
- 阻止SIGHUP信号发到这个进程。
- 关闭标准输入。该进程不再能够接收任何输入,即使运行在前台。
- 重定向标准输出和标准错误到文件nohup.out。
也就是说,nohup命令实际上将子进程与它所在的 session 分离了。