我正在尝试采用所描述的方法这里。
我的 crontab:
# m h dom mon dow command
@reboot /home/qe2user/.rvm/environments/ruby-1.9.3-p125 /home/qe2user/Ruby/test/prog.rb > /home/qe2user/Ruby/test/crondebug.log 2>&1
我的 ruby 程序:
doit = true
while doit
File.open('/home/qe2user/Ruby/test/test.txt','a') {|f| f.write(Time.now.to_s + "\n")}
doit = false
end
crondebug.log 中的输出:
/bin/sh: /home/qe2user/.rvm/environments/ruby-1.9.3-p125: Permission denied
我发出了“chmod u+x prog.rb”,然后再次重新启动,但得到相同的结果。
当我从命令行运行 prog.rb 时,它确实会写入文件。
任何帮助将不胜感激。
答案1
您正在执行的文件是/home/qe2user/.rvm/environments/ruby-1.9.3-p125
,不是/home/qe2user/Ruby/test/prog.rb
。
因此,您必须使第一个可执行:
chmod u+x /home/qe2user/.rvm/environments/ruby-1.9.3-p125
当然,这是假设它ruby-1.9.3-p125
由 crontab 的用户拥有。