PM2 管理需要守护的进程
安装 PM2(若未安装):sudo npm install -g pm2。
用 PM2 以前台模式启动 Light,不要加 -d:
sudo pm2 start /usr/local/bin/light --name light -- -c /etc/light/light.ini
--name 是 PM2 的进程名,-- 之后是 Light 的参数。
保存进程列表并让 PM2 开机自启:
pm2 save
pm2 startup systemd
运行 pm2 startup 时,它会给出一条 sudo env PATH=… pm2 startup systemd … 的命令,照复制执行即可。
停掉原来的 systemd 服务避免冲突:sudo systemctl disable --now light。
日常管理:
查看状态 pm2 status
查看日志 pm2 logs light
重启 pm2 restart light
停止/删除 pm2 delete light
这样 PM2 会在前台运行 Light 并负责守护、重启和日志,避免 daemon.c 的守护逻辑带来的端口绑定问题。
删除保存的进程:
pm2 delete light
pm2 save
取消 PM2 自己的开机脚本:
pm2 unstartup systemd
(它会打印出一条 sudo ... pm2 unstartup systemd 命令,照提示执行即可。)
如果用 PM2 启动 Light 还需要 hw_accel 或访问 /var/run 等权限,运行命令时加 sudo:
sudo pm2 start /usr/local/bin/light --name light -- -c /etc/light/light.ini
关于日志数量问题:
PM2 默认会把 stdout/stderr 分别写到 ~/.pm2/logs/<app>-out.log 和 <app>-error.log,不断追加确实会逐渐变大,但可以控制:
pm2 flush 手动清空所有日志。
pm2 install pm2-logrotate 启用自带的日志轮转模块;安装后用 pm2 set pm2-logrotate:max_size 10M、pm2 set pm2-logrotate:retain 30 等命令设定单个日志大小和保留天数/数量,自动轮转与清理。
也可以在 ecosystem.config.js 里设置 max_size 等参数,或用系统级 logrotate 针对 ~/.pm2/logs/*.log 配置轮转
浙公网安备 33010602011771号