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

发布于 2021-04-03 01:14:44 字数 1559 浏览 1896 评论 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

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

0 文章
0 评论
84960 人气
更多

推荐作者

lorenzathorton8

文章 0 评论 0

Zero

文章 0 评论 0

萧瑟寒风

文章 0 评论 0

mylayout

文章 0 评论 0

tkewei

文章 0 评论 0

17818769742

文章 0 评论 0

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