CentOS 定时任务失效 pm2: command not found - 文章教程

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

发布于 2021-04-03 字数 1806 浏览 1369 评论 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

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

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

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

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

如果你对这篇文章有疑问,欢迎到本站 社区 发帖提问或使用手Q扫描下方二维码加群参与讨论,获取更多帮助。

扫码加入群聊

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

目前还没有任何评论,快来抢沙发吧!

关于作者

JSmiles

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

2583 文章
29 评论
84935 人气
更多

推荐作者

清风夜微凉

文章 1 评论 0

为你鎻心

文章 2 评论 0

xxhui

文章 0 评论 0

1PKOH46yx8j0x

文章 0 评论 0

Arthur

文章 0 评论 0