我有一个名为的脚本mgrst
可以帮我重新启动 mongrel:
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
启动日志启动后有这个:
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 命令。知道这里发生了什么吗?
答案1
是否有可能在 custom_require.rb 中某些内容被相对调用,但由于您是从 rc.local 运行,因此没有定义(或至少没有正确定义)$PATH,而当您登录 bash(或任何 shell)时会设置您的路径然后它运行良好?
答案2
我认为问题是在错误行中描述的:尝试使 -P 和 -l 的参数成为绝对路径。