【问题标题】:Ruby (Rack) application could not be started error messageRuby (Rack) 应用程序无法启动错误消息
【发布时间】:2012-06-12 07:16:17
【问题描述】:

我的 ruby​​ 应用程序运行良好,直到本周早些时候,系统崩溃了,现在我在页面上收到一条错误消息...

错误信息: 无法连接到 localhost:27017 (Mongo::ConnectionFailure) 的主节点

异常类: PhusionPassenger::UnknownError

应用程序根目录: /home/deploy/www/gm-git

系统是这样设置的……

• Ruby on Rails 3.0.8 • Mongoid 2.0.2 • 用于后台处理的 Redis 和 Resque

我尝试了以下启动顺序,但没有成功...

/opt/redis/redis-server
/opt/mongodb/bin/mongod --force --logpath /opt/mongodb/bin
rake environment rescue:workers
touch /home/proyectos/gm/test_git/goldenmile

我已经更新了很多次,例如

/opt/redis/redis-server
/opt/mongodb/bin/mongod --fork --logpath /opt/mongodb/bin
/opt/mongodb/bin/mongod --repair
rake environment rescue:workers
touch /home/proyectos/gm/test_git/goldenmile

但我在终端中收到错误消息,例如

/opt/mongodb/bin/mongod --start
ERROR: unknown option start

/opt/mongodb/bin/mongod --status
ERROR: unknown option status

/opt/mongodb/bin/mongod start
Invalid command: start

/opt/mongodb/bin/mongod/ --logpath /opt/mongodb/bin
-bash: /opt/mongodb/bin/mongod/: Not a directory

/opt/mongodb/bin/mongod/ --logpath /opt/mongodb/bin/mongod/
-bash: 2b.: command not found

/opt/mongodb/bin/mongod/ --logpath /opt/mongodb/bin/mongod
-bash: /opt/mongodb/bin/mongod/: Not a directory

任何帮助/指导都是最有用的

【问题讨论】:

    标签: ruby-on-rails mongodb terminal redis resque


    【解决方案1】:

    mongod 未运行时,localhost:27017 的 Mongo::ConnectionFailure 错误是典型的。您应该使用 ps 命令检查这一点,必要时重新启动 mongod,然后运行 ​​mongo shell。如果 mongo shell 报告“错误:无法连接到服务器 127.0.0.1 shell/mongo.js:84”,请返回并检查您的 mongod 服务器进程的状态。

    以下几行是可疑的。

    /opt/mongodb/bin/mongod --fork --logpath /opt/mongodb/bin
    /opt/mongodb/bin/mongod --repair
    

    您似乎正在尝试同时运行 mongod 服务器和修复。如果 mongod 已经在运行,修复尝试将退出,我猜你真的打算在启动 db 服务之前运行它。如果您在 64 位平台上,日志功能默认开启,您不应该进行修复以恢复一致状态,请参阅 http://www.mongodb.org/display/DOCS/Durability+and+Repair

    另外,修复可能需要很长时间,在此期间,您无法为 db 服务启动另一个 mongod。我怀疑这是您的根本问题 - 修复正在运行,导致尝试启动 db 服务失败。

    无论如何,mongod 似乎没有运行。像--start、--status、start这样的选项都是未知的,并且mongod还会为每个错误打印一个完整的选项列表。在 shell 命令之后(在 mongo 之后)有一个斜杠告诉操作系统寻找一个目录。您是否尝试在没有选项的情况下在 shell 中执行 mongod?发生什么了?您需要让 mongod 作为数据库服务器运行(不是修复),并且应该验证它是否已启动并且您可以使用 mongo shell 进行连接,然后再继续。

    让我们知道结果如何。

    【讨论】:

    • 嗨,我已经取得了一些成功,我使用了... root@XXXX:~# /opt/mongodb/bin/mongod --fork --logpath /opt/mongodb/db.log root @XXXX:~# 分叉进程:2579 所有输出到:/opt/mongodb/db.log
    • 但是,我现在在序列的下一部分收到以下错误... root@XXXX:~# rake environment resque:workers rake aborted!未找到 Rakefile(查找:rakefile、Rakefile、rakefile.rb、Rakefile.rb)/usr/local/lib/ruby/1.9.1/rake.rb:2367:in raw_load_rakefile' /usr/local/lib/ruby/1.9.1/rake.rb:2007:in block in load_rakefile' /usr/local /lib/ruby/1.9.1/rake.rb:2058:in standard_exception_handling' /usr/local/lib/ruby/1.9.1/rake.rb:2006:in load_rakefile' /usr/local/lib/ruby/1.9.1/rake.rb:1991:in run' /usr/local/bin/rake:31:in
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-15
    • 1970-01-01
    • 2012-11-26
    • 2013-09-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多