linux 后台启动node服务,如果直接使用 node server.js 命令; 跑起来之后,一旦退出,服务随机停止;通常有三种方式可以让代码在后台启动;
1 nohup
1.1 基本命令 nohup node server.js&
注意,运行此命令时需要在server.js 目录下方可;
1.2 用过的一些命令-多个端口启动
cd /home/node && nohup node app.js -lp 3001 >log1.log &
cd /home/node && nohup node app.js -lp 3002 >log2.log &
cd /home/ && nohup node app.js -lp 3003 >log3.log &
1.3 个人使用过程中有意外退出的情况
一般使用第二种方式forever;
2 forever,forever功能很强大,也很多,此处只列出目前用到的一些基本的
2.1 安装forever
npm install forever -g
2.2 启动服务
service forever start
此处可能会报一些错误,一般可以不用理会,主要是看它的命令是否执行;
2.3 使用forever 启动js
forever start app.js
启动完可以跟一句 forever list 查看启动情况
2.4 停止js文件
forever stop app.js
2.5 输出日志
forever start -l forever.log -o out.log -e err.log app.js
输出日志的命令,注意日志的文件名不要重复,否则会报错,其中forever.log 会在/root/.forever/目录下;
查看运行情况 使用 tail -f out.log 即可;
其实默认情况下/root/.forever/还是会生成日志文件的,只不过日志的名字是随机字符串,不好管理,只可根据时间做判断;
2.6 带参数启动
forever start app.js -tu http://127.0.0.1:8181/javaweb/ -lp 3001
forever start app.js -tu http://127.0.0.1.53003/javaweb/ -lp 3002
自然,参数的具体含义需要在代码中约定好的;
2.7 重启js文件
forever restart app.js
此命令会重启所有之前启动的服务,且之前启动时的参数保留,日志文件保留
启动结果如下:
非常实用的一个命令;
2.8 查看正在运行的进程
forever list
3 PM2
文档地址:http://pm2.keymetrics.io/docs/usage/pm2-doc-single-page/
nodejs如果只是以单线程的方式运行,无法充分利用多核CPU的性能;这个时候使用PM2就可以很容易的实现多进程启动;
他可以在一个端口下启动指定数量的node进程来充分利用CPU的性能;
记录几个简单的命令;
3.1 安装
$ npm install pm2@latest -g
# or
$ yarn global add pm2
3.2 启动
$ pm2 start app.js
$ pm2 start app.js -i 2 启动2个进程
$ pm2 start app.js -i max 根据有效CPU数目启动最大进程数目
3.3 停止
$ pm2 stop all 停止所有进程
$ pm2 stop 0 停止指定的进程
3.4 重启
$ pm2 restart all 重启所有进程
$ pm2 restart 0 重启指定的进程
3.5 杀死进程
$ pm2 delete 0 杀死指定的进程
$ pm2 delete all 杀死全部进程
3.5 查看进程状态
$ pm2 list 查看启动的进程状态
$ pm2 logs 显示所有进程日志
$ pm2 monit 监视每个node进程的CPU和内存的使用情况
一个疑问: