node.js项目通过pm2以守护进程方式运行

引入

我们在Linux系统上部署了一个node.js写的web项目,通过node app.js启动程序。
在这里插入图片描述但是当该会话被关闭后,该node.js项目就无法被访问了,那么该如何在会话关闭后项目也能一直被外界访问呢?这就需要用到守护进程,而pm2就是其中一种解决方式。

pm2

概述

pm2的官网:https://github.com/Unitech/pm2

PM2 是一个带有负载均衡功能的 Node 应用进程管理器。主要特性:

  • 内建负载均衡(使用 Node cluster 集群模块)
  • 后台运行
  • 0 秒停机重载
  • 具有 Ubuntu 和 CentOS 的启动脚本
  • 停止不稳定的进程(避免无限循环)
  • 控制台检测
  • 提供 HTTP API
  • 远程控制和实时的接口 API(Nodejs 模块,允许和 PM2 进程管理器交互)

简单来说,使用这个可以让node.js项目一直运行。

安装

通过如下命令安装pm2,但前提是已经安装了node.js环境,可以使用npm命令:

npm install pm2 -g

在这里插入图片描述安装成功后需要配置下才能在系统的任意目录下使用pm2命令,参考:使用pm2命令报错“-bash: pm2: command not found“

在任意目录执行pm2 --version命令成功表示配置成功。
在这里插入图片描述

启动

到node.js项目下,通过如下命令进行启动,其中app.js文件是node.js项目的主启动文件。

pm2 start app.js

在这里插入图片描述

更多命令

  • 查看启动列表:pm2 list
    在这里插入图片描述
  • 启动应用:pm2 start

启动的命令如下:

# 启动app.js应用,其中app.js是node.js项目的主启动文件
pm2 start app.js
# 启动app.js应用,并且设置name为"myapp"
pm2 start app.js --name myapp 
# 启动shell脚本
pm2 start app.sh
  • 停止服务:pm2 stop

结束的命令如下:

扫描二维码关注公众号,回复: 13598565 查看本文章
# 停止所有应用
pm2 stop all
# 根据应用名停止指定应用
pm2 stop [app_name]
# 根据应用id停止指定应用
pm2 stop [id]

关于应用名字app_name和应用id说明如图:
在这里插入图片描述如下例:
在这里插入图片描述

  • 删除应用

命令如下:

# 关闭并删除所有引用
pm2 delete all
# 根据应用名关闭并删除指定应用
pm2 delete [app_name]
# 根据应用id关闭并删除指定应用
pm2 delete [id]

在这里插入图片描述

  • 开机自启动:pm2 startup

  • 重启应用:pm2 restart app.js

  • 查看启动列表:pm2 list
    在这里插入图片描述

  • 查看每个应用程序占用情况:pm2 monit
    在这里插入图片描述

  • 显示应用程序所有信息:pm2 show [app_name | id]
    在这里插入图片描述

  • 查看日志:pm2 logs

命令如下:

# 查看所有应用日志
pm2 logs
# 根据指定应用名查看应用日志
pm2 logs [app_name]
# 根据指定应用id查看应用日志
pm2 logs [id]

在这里插入图片描述

相关资源

猜你喜欢

转载自blog.csdn.net/cnds123321/article/details/121666430