Назад | Перейти на главную страницу

Запускать mongrel при запуске системы?

У меня есть сценарий под названием mgrst что перезапускает дворнягу для меня:

cd /opt/redmine
/usr/local/bin/mongrel_rails cluster::stop
rm -rf tmp/pids/*
/usr/local/bin/mongrel_rails cluster::start

Я вызываю это с линии в rc.local:

/usr/bin/mgrst >>/tmp/start.log  2>&1

start.log в нем после запуска:

already stopped port 3000
/usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31: command not found: mongrel_rails start -d -e production -c /opt/redmine --user apache --group apache -p 3000 -P tmp/pids/mongrel.3000.pid -l log/mongrel.3000.log
starting port 3000

Mongrel не запускается после запуска. Я могу переключиться на root и запустить mgrst команда выше, и она отлично работает. Из приведенной выше ошибки видно, что он не находит команду mongrel при запуске, хотя я указываю ей полный путь. Есть идеи, что здесь происходит?

Я думаю, что проблема описана в этой строке ошибки: попробуйте сделать аргументы для -P и -l абсолютными путями.

возможно ли, что что-то в custom_require.rb вызывается относительно, но поскольку вы работаете из rc.local, нет определенного (или, по крайней мере, неправильно определенного) $ PATH, по сравнению с тем, когда вы входите в bash (или любую другую оболочку), ваш путь, а затем он работает нормально?