[英]Rails Cron Job Not running for configured global ruby version MacOS
我正在使用 rbenv 來管理多個 ruby 版本。 我將全局和 shell ruby 版本設置為2.7.6 。 我正在使用rails 7.0.4 。 我的 macos 版本是Monterey 12.5.1 。 rbenv global 也輸出 2.7.6。
我正在使用whenever gem 創建一個簡單的 cron 作業。 我的schedule.rb如下所示
set :output, "./log/cron_log.log"
every 1.minute do
runner "puts 'Hello, world'"
end
但是在我的 crontab 日志文件中我得到了這個
/Library/Ruby/Site/2.6.0/rubygems/bundler_version_finder.rb:54:in `pwd': Operation not permitted - getcwd (Errno::EPERM)
from /Library/Ruby/Site/2.6.0/rubygems/bundler_version_finder.rb:54:in `lockfile_contents'
from /Library/Ruby/Site/2.6.0/rubygems/bundler_version_finder.rb:41:in `lockfile_version'
from /Library/Ruby/Site/2.6.0/rubygems/bundler_version_finder.rb:10:in `bundler_version'
from /Library/Ruby/Site/2.6.0/rubygems/bundler_version_finder.rb:17:in `block in prioritize!'
from /Library/Ruby/Site/2.6.0/rubygems/bundler_version_finder.rb:17:in `find_index'
from /Library/Ruby/Site/2.6.0/rubygems/bundler_version_finder.rb:17:in `prioritize!'
from /Library/Ruby/Site/2.6.0/rubygems/dependency.rb:282:in `matching_specs'
from /Library/Ruby/Site/2.6.0/rubygems.rb:257:in `find_spec_for_exe'
from /Library/Ruby/Site/2.6.0/rubygems.rb:284:in `activate_bin_path'
from /usr/bin/bundle:23:in `<main>'
我的 macos 版本默認的 shell 是 zsh。 但顯然 crons 是使用 bash -l -c 運行的。 所以我按照 rbenv 的 github 頁面和 setup.bash_profile 中的說明進行操作,如下所示
#.bash_profile
eval "$(rbenv init - bash)"
#.bashrc
source .bash_profile
但我仍然得到相同的 output。有人可以幫我解決這個問題嗎?
對於在 macOS 上遇到類似問題的每個人,請嘗試 github.com/rvm/rvm rvm。 將 ruby 版本管理器切換到 rvm 為我解決了這個問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.