Мой рубин находится в /usr/local/bin. всякий раз не может его найти, и установка PATH в верхней части моего файла cron не работает либо, я думаю, потому что всякий раз, когда команда запускается внутри нового экземпляра bash.
# this does not work PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/sbin # Begin Whenever generated tasks for: foo 0 * * * * /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 кажется мне запутанным, но я думаю, что это может быть единственный вариант.
Этот вопрос предлагает env :PATH, "..."
в schedule.rb в качестве решение, но (а) я не могу найти документацию по этой функции нигде в документах (б) похоже, это не решило проблему спрашивающего (к сожалению, мне требуется нетривиальное время, чтобы просто попробовать это) . обновить на самом деле это внизу этой страницы, сейчас попробую.
подробнее
- Я не могу изменить команду cron, потому что она генерируется всякий раз, когда
- я проверил, что если я создам новую оболочку bash с
bash -l
, /usr/bin/env отлично найдет ruby - Я только что попробовал точную команду в cron, начиная с /bin/bash, из командной строки этого пользователя, и это сработало.
так что это очень загадочно...
ENV.each { |k, v| env(k, v) }
25.01.2016