我们在将自己编写的node项目经常会遇到项目因为遇到错误关闭的情况,而该文章将为大家提供node项目遇到异常停止后,如何实现自动重启的功能。摆脱每次都要手动重启的尴尬。
全局安装 pm2:
npm install pm2 -g
检查全局 npm 模块路径,运行以下命令以查看全局 npm 模块的安装位置:
npm root -g
手动配置环境变量:
使用以下命令检查 `pm2` 的全局安装路径:
which pm2
如果 `pm2` 的全局安装路径不在系统的环境变量中,需要手动配置。打开终端配置文件(通常是 `~/.bashrc` 或 `~/.bash_profile`),然后添加以下行:
export PATH=$PATH:/usr/local/bin
或将路径 `/usr/local/bin` 替换为 `pm2` 的实际全局安装路径。
比如下面是我的实际全局安装路径:
export PATH=$PATH:/www/server/nodejs/v14.17.6/lib/node_modules/pm2/bin
接下来,我们修改一下环境变量
打开终端配置文件(在服务器根目录下运行):
使用以下命令打开终端配置文件(通常是 `~/.bashrc` 或 `~/.bash_profile`):
vi ~/.bashrc
或
vi ~/.bash_profile
添加 pm2 的路径:在文件的末尾添加以下行:
export PATH=$PATH:/www/server/nodejs/v14.17.6/lib/node_modules/pm2/bin
保存和退出:
按 `Esc` 键,然后输入 `:wq`,并按回车键保存并退出 vi 编辑器。
重新加载环境变量:
使用以下命令重新加载环境变量:
source ~/.bashrc
或
source ~/.bash_profile
验证 pm2 安装:
再次尝试运行以下命令来验证 `pm2` 是否已成功安装:
pm2 --version
如果成功安装,你会看到 `pm2` 的版本号。
接下来,我们就要进入正题了。
要在宝塔面板中创建的 Node.js 项目保持自动重启,我们需要通过一些工具或脚本来实现。一种常见的方法是使用 `pm2` 这样的进程管理工具:
安装 pm2:
宝塔面板中使用终端输入以下命令安装 `pm2`(前面操作过,这步可以省略)
npm install pm2 -g
启动应用程序:
在项目目录下,使用 `pm2` 启动应用程序(重启就将start换成restart),例如:
pm2 start npm -- start
保存当前 `pm2` 进程列表:
这将确保在服务器重新启动后 `pm2` 进程仍然运行。您可以使用以下命令保存当前的 `pm2` 进程列表:
pm2 save
生成启动脚本:
为了使 `pm2` 在服务器重新启动时自动加载,您可以生成一个启动脚本。可以通过以下命令生成脚本:
pm2 startup
现在,当服务器重新启动时,`pm2` 会自动加载并启动 Node.js 应用程序。 通过这些步骤,Node.js 应用程序应该能够在遇到异常停止后自动重启。
最后需要注意的是,如果将来更新或重新安装了 Node.js 版本,`npm` 的全局路径可能会更改。在这种情况下,你需要相应地更新 `pm2` 的路径。确保将上述步骤中的路径 `/www/server/nodejs/v14.17.6` 替换为自己的实际 Node.js 版本的路径。