在Linux系统上服务持久化可以使用一些工具来确保即使在终端关闭后服务也能继续运行。这里介绍 pm2
工具来管理和持久化启动服务。
使用 PM2 持久化启动服务
-
安装 PM2:
如果尚未安装
pm2
,可以通过 npm 进行安装:npm install pm2 -g
-
设置 PM2 启动脚本:
在项目根目录下,创建一个
ecosystem.config.js
文件(如果已存在则跳过这一步),用来配置 PM2 启动参数。示例配置如下:module.exports = { apps: [ { name: 'my-app', // 应用名称,自定义 script: 'npm', // 启动命令 args: 'run serve', // npm 启动参数 instances: 1, // 启动实例个数 autorestart: true, // 发生错误自动重启 watch: false, // 是否监听文件变动然后重启 max_memory_restart: '1G', // 超过内存多少自动重启 env: { NODE_ENV: 'development' // 设置环境变量 }, env_production: { NODE_ENV: 'production' // 生产环境变量 } } ] };
在上述配置中,确保将
script
设置为'npm'
,args
设置为'run serve'
,这样 PM2 将通过 npm 启动你的服务。 -
启动服务:
使用以下命令启动你的应用程序:
pm2 start ecosystem.config.js
这将根据
ecosystem.config.js
中的配置启动服务,并且服务会在后台持续运行。 -
管理服务:
使用 PM2 可以方便地管理服务的启动、停止、重启等操作:
-
停止服务:
pm2 stop <app_name_or_id>
-
重启服务:
pm2 restart <app_name_or_id>
-
查看服务状态:
pm2 status
或者
pm2 list
可以查看当前所有运行的服务。
更多详细的命令可以通过
pm2 --help
查看。 -
通过使用 PM2,你可以方便地将服务持久化运行在 Linux 系统上,并且在服务器重启或终端断开连接后也能够保持运行。
当需要在window持久启动服务,则需其他方式,当运行报错按以下方式解决
1. :: Created by npm, please don't edit manually.
2. PM2 error: Error caught while calling pidusage
3. PM2 error: Error: Error: spawn wmic ENOENT
首先安装 pm2-windows-service
npm install pm2-windows-service -g
安装和启动服务
pm2-service-install
然后在根目录创建startScript.js:
const cmd=require('node-cmd');
cmd.run('npm run serve'); //运行项目启动命令
最后运行
pm2 start startScript.js
启动的地址即你项目正常启动时的地址