分享最新优惠信息
购买主机更加划算

如何利用PM2在系统启动时自动启动Node.js应用程序

PM2是一个强大的、广泛使用的、功能丰富的、适用于Node.js应用程序的管理器。每次服务器启动/重新启动时,使用PM2可以重新启动PM2所管理的进程。PM2的主要功能之一是支持启动脚本(根据服务器上的默认初始化系统动态生成),它会在每次服务器重启时重新启动PM2和应用进程。

启动脚本将PM2设置为init系统下的服务。当服务器重新启动时,它会自动重新启动PM2,然后PM2会重新启动它正在管理的所有Node.js 应用程序/进程。

在本文中,小编简单介绍如何将PM2作为服务部署以可靠的管理Node.js应用程序。另外,测试系统使用systemd服务和系统管理器,并且所有命令都将以root身份执行(在必要时使用sudo使有权限的用户可以调用它)。

pm25

为Init系统生成PM2启动脚本

PM2旨在与Linux系统上的默认初始化系统(它可以自动检测)一起工作,以生成启动脚本并将PM2配置为可以在系统启动时重新启动的服务

要生成启动脚本,只需以root身份运行以下命令:

# pm2 startup

上述命令告诉PM2来检测可用的INIT系统,生成配置和启用启动系统。

为 Init 创建 PM2 启动脚本

此外,还可以像这样显式指定init系统:

# pm2 startup systems

要确认PM2启动服务在systemd下启动并运行,请运行以下命令(pm2-root.service替换为你的服务的实际名称,检查上一个命令的输出):

# systemctl status pm2-root.service

启动Node.js应用程序/进程

接下来,要使用PM2启动Node.js应用程序,如下所示。如果已经通过PM2启动并运行的话,,可以跳过这一步:

# cd /var/www/backend/api-v1-staging/
# pm2 start src/bin/www.js -n api-service-staging

启动Nodejs应用程序

接下来,需要通过运行以下命令来注册/保存要使用PM2管理的当前进程列表,以便它们在系统启动时(每次定期或服务器意外重新启动时)重新生成:

# pm2 保存

保存进程列表

验证PM2启动时自动启动的Node.js应用程序

最后,需要测试设置是否正常工作。重新启动系统,并检查所有Node.js进程是否都在PM2下运行。

# pm2 ls
或者
# pm2 status

请注意,可以通过运行以下命令手动复活进程:

# pm2 resurrect

禁用启动系统

可以通过运行unstartup子命令来禁用启动系统,如下所示。

# pm2 unstartup
或者
# pm2 startup systemd

要更新启动脚本,首先禁用它,然后运行一下命令再次启动它。

# pm2 unstartup
# pm2 startup
未经允许不得转载:惠主机 » 如何利用PM2在系统启动时自动启动Node.js应用程序