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