ubuntu – Cron失败,退出状态为127

前端之家收集整理的这篇文章主要介绍了ubuntu – Cron失败,退出状态为127前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
参见英文答案 > Why is my crontab not working,and how can I troubleshoot it?5个
我正在尝试让我的crontab为rails应用程序运行一些rake任务,但似乎总是退出状态为127,在我的syslog中它看起来像这样:
Jun  7 05:10:01 ip-10-170-122-226 CRON[15664]: (deploy) CMD (cd /home/deploy/apps/dashboard/current && bundle exec rake some:task
Jun  7 05:10:01 ip-10-170-122-226 CRON[15662]: (CRON) error (grandchild #15664 Failed with exit status 127)

似乎127就像“命令未找到错误”之类的东西,所以我已经使用了完整路径到bin,即使像bundle是/usr/local / bin / bundle,任务在cron之外运行正常运行它在壳中.

我的crontab很简单:

*/10 * * * * cd /home/deploy/apps/dashboard/current && bundle exec rake some:task

也许我的crontab需要#!/usr/bin或顶部的东西?

更新

要测试它,它似乎运行这很好:

*/1 * * * *  /usr/bin/touch /home/deploy/cron-test.txt

所以这让我认为它就像一个PATH可变的东西,但我不知道如何在那里获得正确的路径变量,任何想法?

当bash找不到命令时,退出状态127由bash设置(见 Advanced Bash Scripting).
为了使调试更容易,您应该将所有内容放在脚本中.确保脚本是可执行的,并以解释器名称和路径开头:
#! /bin/bash
cd /.../ &&  next_command

您应该将crontab行类似于:

*/10 * * * * cd /home/deploy/apps/dashboard/current && /PATH_TO/bundle exec rake some:task

或者在crontab中设置PATH变量:

PATH=/bin:/usr/bin:/sbin:/usr/sbin:/PATH_TO_bundle
*/10 * * * * cd /home/deploy/apps/dashboard/current && /PATH_TO/bundle exec rake some:task

猜你在找的Ubuntu相关文章