通过 Cron 启动和停止 PM2 进程

问题描述

我在 Node.js 中有一个解析应用程序,它为来自 RabbitMQ 队列的大量作业提供服务。

每个工作日应该从 9:00 开始服务,到 18:00 停止。

node-schedule 这样的应用级解决方案在概念上并不合适,因为我需要在外部打开和关闭进程,从而保留队列。

所以,我最终选择了 Cron,它有以下选项卡:

0 9 * * 1-5 cd /var/www/foodmara/current && pm2 start parser >/dev/null 2>&1
0 18 * * 1-5 cd /var/www/foodmara/current && pm2 stop parser >/dev/null 2>&1

我已使用 >/dev/null 2>&1 克服“未安装 MTA,丢弃输出错误

当我检查 parser 进程 pm2 status 的状态时,我看到它没有启动,也没有停止:

pm2 status
┌─────┬────────┬─────────────┬─────────┬─────────┬──────────┬────────┬──────┬───────────┬──────────┬──────────┬──────────┬──────────┐
│ id  │ name   │ namespace   │ version │ mode    │ pid      │ uptime │ ↺    │ status    │ cpu      │ mem      │ user     │ watching │
├─────┼────────┼─────────────┼─────────┼─────────┼──────────┼────────┼──────┼───────────┼──────────┼──────────┼──────────┼──────────┤
│ 127 │ parser │ default     │ 1.0.0   │ fork    │ 0        │ 0      │ 4    │ stopped   │ 0%       │ 0b       │ root     │ disabled │

在 syslog 中,我看到执行了 cron 命令:

tail -n 1000 /var/log/syslog | grep CRON
Feb 19 09:00:01 277152 CRON[8939]: (root) CMD (cd /var/www/myproject/current && pm2 start parser >/dev/null 2>&1)
Feb 19 09:17:01 277152 CRON[11595]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)

应用程序日志中没有错误

我可以通过这种方式使用来自 Cron 的 PM2 命令吗? 我还能在哪里检查,出了什么问题?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)