CentOS 定时任务失效 pm2: command not found
服务器上挂了个了 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论