Cron fails with exit status 127 [duplicate]
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?
Solution 1:
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:
#! /bin/bash
cd /.../ && next_command
You should have the crontab line similar to:
*/10 * * * * cd /home/deploy/apps/dashboard/current && /PATH_TO/bundle exec rake some:task
or set the PATH variable in crontab:
PATH=/bin:/usr/bin:/sbin:/usr/sbin:/PATH_TO_bundle
*/10 * * * * cd /home/deploy/apps/dashboard/current && /PATH_TO/bundle exec rake some:task
Solution 2:
See man 5 crontab
how to setup PATH for your cron jobs.