簡體   English   中英

Rails Cron 作業未針對配置的全局 ruby 版本 MacOS 運行

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM