在本地开发或部署轻量级应用时,我们常常需要在Mac mini或其他macOS设备上,让一个Node.js服务(例如Express或WebSocket服务)在系统开机后自动启动并常驻后台。本文介绍如何使用PM2来实现开机自启动。
1. 安装PM2
如果还没安装过PM2,可以通过npm全局安装:
npm install -g pm2
检查是否安装成功:
pm2 -v
2. 启动Node.js服务
进入你的Node.js项目目录,使用PM2启动你的服务。例如,如果你的入口文件是app.js
:
pm2 start app.js --name my-node-app
--name
参数可以为你的进程指定一个易于识别的名称。
如果你不想进入项目目录,也可以直接指定完整路径:
pm2 start /path/to/your/app.js --name my-node-app
3. 配置PM2开机自启动
PM2提供了一个方便的命令来生成开机自启动脚本。运行以下命令:
pm2 startup
这条命令会输出一条类似下面的命令:
sudo env PATH=$PATH:/usr/local/bin pm2 startup launchd -u your-username --hp /Users/your-username
复制并执行这条命令。它会将PM2配置为在系统启动时自动运行。
4. 保存当前进程列表
为了确保在系统重启后,PM2能够重新启动你当前运行的Node.js服务,需要保存当前的进程列表:
pm2 save
5. 验证配置
你可以通过重启你的Mac来验证配置是否成功。重启后,使用以下命令查看PM2的进程列表:
pm2 list
如果看到你的Node.js服务正在运行,说明配置成功。
或者查看日志:
pm2 logs my-node-app
6. 管理PM2进程
你可以使用以下命令来管理你的PM2进程:
pm2 stop my-node-app # 停止服务
pm2 restart my-node-app # 重启服务
pm2 delete my-node-app # 删除服务