I'm trying to get my crontab to run a few rake tasks for a rails app, but it seems to always exit with the status of 127, in my syslog it look like this:
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)
It seems that 127 is like "command not found error" or something, so I've used the full paths to the bins even so like bundle was /usr/local/bin/bundle
, The task runs fine outside of cron just running it in shell.
My crontab is simplily just:
*/10 * * * * cd /home/deploy/apps/dashboard/current && bundle exec rake some:task
Does maybe my crontab need #!/usr/bin
or something at the top?
update
To just test it, it does seem to run this just fine:
*/1 * * * * /usr/bin/touch /home/deploy/cron-test.txt
So that leads me to think its like a PATH varible thing, but I don't know how to get the right path vars in there, any thoughts?
Exit status 127 is set by bash when it can not find the command (see Advanced Bash Scripting). To make the debugging easier, you should put all the stuff in a script. Make sure that the script is executable and starts with the interpreter name and path:
You should have the crontab line similar to:
or set the PATH variable in crontab:
See
man 5 crontab
how to setup PATH for your cron jobs.Have a look here: http://ubuntuforums.org/showthread.php?t=1760488 perhaps this will point you in the right direction.
Usually what I do with cron jobs is to create a script file, test the script and then place the script in the cron.
Hope that this helps.