gpt4 book ai didi

ruby - 在 cron 中为 whenever 设置路径以便它可以找到 ruby

转载 作者:数据小太阳 更新时间:2023-10-29 06:34:25 26 4
gpt4 key购买 nike

我的 ruby 在/usr/local/bin 中。 whenever找不到它,并且在我的 cron 文件顶部设置 PATH 也不起作用,我认为是因为无论何时在新的 bash 实例中运行命令。

# this does not workPATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/sbin# Begin Whenever generated tasks for: foo0 * * * * /bin/bash -l -c 'cd /srv/foo/releases/20110429110637 && script/rails runner -e production '\''ActiveRecord::SessionStore::Session.destroy_recent(15)'\'''# End Whenever generated tasks for: foo

我如何知道我的 ruby​​ 二进制文件在哪里?从/usr/bin 建立符号链接(symbolic link)对我来说似乎很麻烦,但我想这可能是唯一的选择。

This question在 schedule.rb 中提供 env :PATH, "..." 作为解决方案,但是 (a) 我在文档的任何地方都找不到该功能的任何文档 (b) 它没有似乎已经解决了提问者的问题(不幸的是,我只是尝试它需要不平凡的周转时间)。更新实际上it is in the bottom of this page ,我现在就试试。

更多信息

  1. 我无法修改 cron 命令,因为它是由 whenever 生成的
  2. 我验证了如果我使用 bash -l 创建一个新的 bash shell,/usr/bin/env 会发现 ruby​​ 就好了
  3. 我刚刚从该用户的命令行中尝试了 cron 中的确切命令,从/bin/bash 开始,它成功了。

所以,这很神秘......

最佳答案

解决方案是将其放入schedule.rb:

env :PATH, ENV['PATH']

Here's a little guide I put together on the topic.

关于ruby - 在 cron 中为 whenever 设置路径以便它可以找到 ruby,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5835675/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com