微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

通过 Cron 启动和停止 PM2 进程

如何解决通过 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 举报,一经查实,本站将立刻删除。