📜  pm2 启动时自动启动 (1)

📅  最后修改于: 2023-12-03 15:03:47.990000             🧑  作者: Mango

pm2 启动时自动启动

在运维中,我们经常会使用 pm2 来管理 Node.js 程序。当我们需要服务器重启或者应用程序异常退出时,需要手动重新启动 pm2 管理的应用程序,这样会增加很多手动操作,效率不高并且容易出错。而 pm2 控制台提供了一种方便且简单的方法来自动启动应用程序。

使用 pm2 install auto-start 命令

pm2 提供了一个插件,可以用来自动启动应用程序,安装方式如下:

pm2 install auto-start

添加至启动项:

pm2 save

这样,pm2 守护进程就会自动在系统启动时自动启动已存在的应用程序。

使用 systemd

systemd 是 Linux 中启动及管理系统服务的标准工具,可以用 systemd 来启动 pm2 守护进程,然后由 pm2 来启动应用程序。配置步骤如下:

1. 创建 systemd Unit 文件

创建一个 pm2 文件并添加必要的属性。

sudo nano /etc/systemd/system/pm2.service

然后将以下内容添加到该文件:

[Unit]
Description=PM2 service manager

[Service]
Type=forking
User=<user-name>
WorkingDirectory=/home/<user-name>/my-app
ExecStart=/usr/local/bin/pm2 start
ExecReload=/usr/local/bin/pm2 reload all
ExecStop=/usr/local/bin/pm2 stop all
KillMode=process
Restart=on-failure
RestartSec=2

[Install]
WantedBy=multi-user.target

请将 <user-name> 替换为您要运行应用程序的用户名,并将 /home/<user-name>/my-app 替换为应用程序的路径。您还可以根据需要更改其他属性。

2. 重新加载 systemd 并启用 pm2

完成 pm2 文件的编辑并保存更改后,请重新加载 systemd 并启用 pm2。

sudo systemctl daemon-reload
sudo systemctl enable pm2
sudo systemctl start pm2

您现在可以验证 pm2 是否正在运行,以及您的应用程序是否正在运行。

3. 程序的启动和停止

在通过 systemd 启动 pm2 后,我们已经将 pm2 守护进程自动启动设置好了。现在,如果需要手动启动、停止或重新加载您的应用程序,请使用以下命令:

pm2 start <app-name>
pm2 stop <app-name>
pm2 reload <app-name>

此外,您还可以使用 pm2 的其他命令来管理您的应用程序。

通过上述方式,我们可以实现服务器启动时自动启动 pm2 管理的应用程序,提高了效率并保证了应用程序的稳定性。