ruby脚本无法在crontab里运行的问题
By admin
昨天搞了大半天,弄了个rails3的non-browser程序,就当脚本运行
写了个bash脚本运行这个rb程序,按说把ruby xxx.rb直接放到cron里运行也行,不过由于运行时间间隔较短,可能出现重复运行的情况,放到bash脚本里,每次运行时先查一下进程里有没有运行这个脚本,如果没有则运行之。本来这个检测都交给ruby运行也可以,不过如果出现什么timeout的错误退出了就必须人工启动了。
写好之后,直接运行这个xxx.sh脚本运行这个xxx.rb程序,没有任何问题,但是放到crontab里就不行,来回调试,后来回家半夜了发现在cron里运行完xxx.rb之后的$?为1,然后仔细看了看我的xxx.rb
原来的写法是
终于想明白了原来在cron中运行的程序都必须取得绝对路径
照着config/application.rb里的写法,改成
正常运行了!