Ruby Cron作业未运行?

Ruby Cron作业未运行?,ruby,cron,crontab,Ruby,Cron,Crontab,我的cron任务不会完成。在过去的几个小时里,我一直在不停地旋转轮子 我的crontab中有一行: * * * * * /usr/local/rvm/rubies/ruby-2.0.0-p195/bin/ruby /home/pra/grinder/misc_scripts/daily_total_logger.rb 我可以运行以下命令: /usr/local/rvm/rubies/ruby-2.0.0-p195/bin/ruby /home/pra/grinder/misc_scripts/

我的cron任务不会完成。在过去的几个小时里,我一直在不停地旋转轮子

我的crontab中有一行:

* * * * * /usr/local/rvm/rubies/ruby-2.0.0-p195/bin/ruby /home/pra/grinder/misc_scripts/daily_total_logger.rb
我可以运行以下命令:

/usr/local/rvm/rubies/ruby-2.0.0-p195/bin/ruby /home/pra/grinder/misc_scripts/daily_total_logger.rb
它工作起来没问题

我将其设置为每分钟运行一次,这样我就可以查看日志,并且可以在日志(/var/log/cron)中看到这一点:

我已经在两个不同的服务器上复制了相同的行为(在愚弄了一个小时的脚本后,我想我应该把它移到另一个服务器上,但问题是相同的)

我还试过一件事。创建另一个具有与其他操作相同权限的ruby文件(将日期时间附加到文件)。我用以下代码创建了/home/pra/grinder/misc_scripts/test.rb

open('/home/log.log', 'a') do |f|
  f.puts Time.now.to_s
end
而且效果很好。快速检查权限显示两个文件具有相同的权限

-rw-r--r--. 1 root root 348 Dec 19 00:52 daily_total_logger.rb
-rw-r--r--. 1 root root  61 Dec 19 01:13 test.rb 
我知道最好不要在根目录下运行,我只是想消除所有潜在的问题。我一辈子都不知道是什么原因造成的。我简化了脚本,但这个超级简单脚本仍然存在相同的错误:

require 'pg'

conn = PG.connect(dbname: '***',user: '***',password: '***', host: '***')
query = "INSERT INTO foobar (foo, bar) VALUES (1, 3)"
conn.exec(query)

puts "Done..."

如果我从命令行运行它,它可以正常工作。如果我将其作为cron作业运行,则无法完成。我完全被搞糊涂了——两台服务器,一台debian,一台redhat上都有同样的问题。。。任何帮助都将不胜感激。

我追溯到这一行:

require 'pg'
如果我在脚本中需要该库,那么脚本的其余部分在作为cron作业调用时将停止运行,但在从命令行调用时可以正常工作。关于这方面的更多信息,我在这里更好地记录了这个问题(希望有人能解释为什么会发生这种情况):

require 'pg'