我的红宝石在 /usr/local/bin 中。每当找不到它,并且在我的 cron 文件顶部设置 PATH 也不起作用,我认为是因为每当在新的 bash 实例中运行命令时。
# 这不起作用 PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/sbin # 每当生成任务时开始: foo 0 * * * * /bin/bash -l -c 'cd /srv/foo/releases/20110429110637 && script/rails runner -e production '\''ActiveRecord::SessionStore::Session.destroy_recent(15)'\' '' # 每当生成任务时结束: foo
我怎么知道我的红宝石二进制文件在哪里?从 /usr/bin 建立符号链接对我来说似乎很乱,但我想这可能是唯一的选择。
这个问题在 schedule.rb 中提供env :PATH, "..."
了一个解决方案,但是(a)我在文档中的任何地方都找不到该功能的任何文档(b)它似乎没有解决提问者的问题(不幸的是,它需要不平凡周转时间让我尝试一下)。
更新实际上它在这个页面的底部,我现在就试试。
更多信息
- 我无法修改 cron 命令,因为它是由任何时候生成的
- 我验证了如果我用 制作一个新的 bash shell
bash -l
,/usr/bin/env 发现 ruby 就好了 - 我刚刚从该用户的命令行尝试了 cron 中的确切命令,从 /bin/bash 开始,它起作用了。
所以,这很神秘……