CentOS 定时任务失效 pm2: command not found

发布于 2021-04-03 01:14:44 字数 1559 浏览 1925 评论 0

服务器上挂了个了 NodeJS 脚本,由于服务器配置比较低,脚本没处理好内存占用问题,先用定期重启的方式解决服务器崩溃问题,所以设置了一个定时任务,每 2 个小时执行一遍:

每2小时执行一次
0 */2 * * * pm2 restart /usr/p2pspider/index.js

心想这样的设置应该就没有问题,但是第二天早上登录服务器,发现已经卡死了, ssh 都连不上,重启服务器后查看定时任务日志:

Mar 31 11:19:01 guest anacron[2455]: Normal exit (3 jobs run)
Mar 31 12:00:02 guest crond[2406]: (pm2) ERROR (getpwnam() failed - user unknown)
Mar 31 12:00:02 guest CROND[2974]: (root) CMD (pm2 restart /usr/p2pspider/index.js)
Mar 31 12:00:02 guest CROND[2972]: (root) CMDOUT (/bin/bash: pm2: command not found)
Mar 31 12:01:01 guest CROND[2978]: (root) CMD (run-parts /etc/cron.hourly)
Mar 31 12:01:01 guest run-parts[2978]: (/etc/cron.hourly) starting 0anacron
Mar 31 12:01:01 guest run-parts[2978]: (/etc/cron.hourly) finished 0anacron
Mar 31 13:01:02 guest CROND[3058]: (root) CMD (run-parts /etc/cron.hourly)

在正常情况下,直接调用 pm2 是没有问题的,但是在定时任务下就无法识别这个命令,查看定任务设置:$ crontab -l

查看 pm2 的安装执行路径:$ whereis pm2

发现问题所在了,注意定时任务里面的 PATH 参数,并没有包含 pm2 的目录,所以才会找不到 pm2 命令,编辑定时任务添加上环境变量即可。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

JSmiles

生命进入颠沛而奔忙的本质状态,并将以不断告别和相遇的陈旧方式继续下去。

文章
评论
84963 人气
更多

推荐作者

微信用户

文章 0 评论 0

小情绪

文章 0 评论 0

ゞ记忆︶ㄣ

文章 0 评论 0

笨死的猪

文章 0 评论 0

彭明超

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文