У меня есть сценарий под названием 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 (или любую другую оболочку), ваш путь, а затем он работает нормально?