使用 cron 和 ruby
Using cron and ruby
OS: Mac OS X 10.10.3;
Ruby 版本:2.2.0;
我在使用启动 ruby 脚本的 cron 时遇到问题。
问题:cron 启动 ruby 脚本,但没有任何反应。该 cron 在其日志中说(脚本需要 mongo gem):
/Users/username/.rvm/rubies/ruby-2.2.0/lib/ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in `require': cannot load such file -- mongo (LoadError)
from /Users/username/.rvm/rubies/ruby-2.2.0/lib/ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in `require'
from /Users/username/project_path/main.rb:5:in `<main>'
Cron 设置:
SHELL = /bin/bash
MAILTO = username
* * * * * /Users/username/.rvm/rubies/default/bin/ruby /Users/username/project_path/main.rb
所以 ruby 无法加载 gem,而脚本是由 cron 启动的,但是当我从 IDE 或终端启动它时,它可以正常工作
这是一个常见问题。基本上,您的 cron
工作所在的环境 运行 与您的 IDE / 终端的环境不同。
您需要研究 these lines 的解决方案。了解正在发生的事情将涉及更多地了解 cron、用户和其他相关主题。
好的。几个小时后,我终于解决了这个问题。解决方案非常简单。我不知道,为什么它只能那样工作。
所以,解决方案:
1.Create bash 具有以下内容的脚本:
#!/usr/bin/env bash
/Users/username/.rvm/gems/ruby-2.2.0/wrappers/ruby /path/to/your/ruby_script.rb
2。配置 cron 文件:
SHELL = /bin/bash
* * * * * /path/to/created/at/first/step/bash_script.sh
就是这样!
它对我有用!
OS: Mac OS X 10.10.3; Ruby 版本:2.2.0;
我在使用启动 ruby 脚本的 cron 时遇到问题。 问题:cron 启动 ruby 脚本,但没有任何反应。该 cron 在其日志中说(脚本需要 mongo gem):
/Users/username/.rvm/rubies/ruby-2.2.0/lib/ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in `require': cannot load such file -- mongo (LoadError)
from /Users/username/.rvm/rubies/ruby-2.2.0/lib/ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in `require'
from /Users/username/project_path/main.rb:5:in `<main>'
Cron 设置:
SHELL = /bin/bash
MAILTO = username
* * * * * /Users/username/.rvm/rubies/default/bin/ruby /Users/username/project_path/main.rb
所以 ruby 无法加载 gem,而脚本是由 cron 启动的,但是当我从 IDE 或终端启动它时,它可以正常工作
这是一个常见问题。基本上,您的 cron
工作所在的环境 运行 与您的 IDE / 终端的环境不同。
您需要研究 these lines 的解决方案。了解正在发生的事情将涉及更多地了解 cron、用户和其他相关主题。
好的。几个小时后,我终于解决了这个问题。解决方案非常简单。我不知道,为什么它只能那样工作。 所以,解决方案:
1.Create bash 具有以下内容的脚本:
#!/usr/bin/env bash
/Users/username/.rvm/gems/ruby-2.2.0/wrappers/ruby /path/to/your/ruby_script.rb
2。配置 cron 文件:
SHELL = /bin/bash
* * * * * /path/to/created/at/first/step/bash_script.sh
就是这样! 它对我有用!