一、方法1:nohup
which nohup
.bash_profile中并source加载
如果没有就安装吧
yum provides */nohup
nohup npm start &
原程序的的标准输出被自动改向到当前目录下的nohup.out文件,起到了log的作用。
停止程序:
ps -ef | grep npm
ps -ef | grep node
kill -9 1067
二、方法2:pm2
- 内建负载均衡(使用 Node cluster 集群模块)
- 后台运行
- 0 秒停机重载,我理解大概意思是维护升级的时候不需要停机。
- 具有 Ubuntu 和 CentOS 的启动脚本
- 停止不稳定的进程(避免无限循环)
- 控制台检测
- 提供 HTTP API
- 远程控制和实时的接口 API ( Nodejs 模块,允许和 PM2 进程管理器交互 )
- pm2官网 http://pm2.keymetrics.io/
1、安装
cnpm install pm2 -g
#查看安装是否成功
pm2 list
2、启动项目
#pm2启动:
pm2 start "/opt/node-v10.15.3-linux-x64/bin/npm" --name "mytest" -- start .
# /opt/node-v10.15.3-linux-x64/bin/npm 安装路径(which npm 查看)
pm2 list
pm2 stop
pm2 restart
pm2 delete
3、pm2 常用命令
pm2 start app.js # 启动app.js应用程序
pm2 start app.js –name=”api” # 启动应用程序并命名为 “api”
pm2 start app.js –watch # 当文件变化时自动重启应用
pm2 start script.sh # 启动 bash 脚本
pm2 list # 列表 PM2 启动的所有的应用程序
pm2 monit # 显示每个应用程序的CPU和内存占用情况
pm2 show [app-name] # 显示应用程序的所有信息
pm2 logs # 显示所有应用程序的日志
pm2 logs [app-name] # 显示指定应用程序的日志
pm2 stop all # 停止所有的应用程序
pm2 stop 0 # 停止 id为 0的指定应用程序
pm2 restart all # 重启所有应用
pm2 reload all # 重启 cluster mode下的所有应用
pm2 gracefulReload all # Graceful reload all apps in cluster mode
pm2 delete all # 关闭并删除所有应用
pm2 delete 0 # 删除指定应用 id 0
pm2 scale api 10 # 把名字叫api的应用扩展到10个实例
pm2 reset [app-name] # 重置重启数量
pm2 startup # 创建开机自启动命令
pm2 save # 保存当前应用列表
pm2 resurrect # 重新加载保存的应用列表
pm2 update # Save processes, kill PM2 and restore processes
pm2 generate # Generate a sample json configuration file