代码之家  ›  专栏  ›  技术社区  ›  Aaron Cunnington

流星:意外的mongo退出代码100

  •  55
  • Aaron Cunnington  · 技术社区  · 13 年前

    我刚刚将Meteor版本0.5.9(45fef52095)安装到我的CentOS 6.3版(最终版)服务器(Linux版本2.6.32-279.19.1.el6.i686)(mockbuild@c6b8.bsys.dev.centos.org)(gcc版本4.4.6 20120305(Red Hat 4.4.6-4)(gcc))#1 SMP 2012年12月19日星期三04:30:58 UTC)

    我有一个samba共享到安装在apache用户下的/mnt/apshared的WindowsSBS服务器。我在里面创建了一个名为“网络流星”的目录。我在“webmeter”目录中创建了一个名为“myapp”的应用程序,所以我的目录如下:/mnt/apshared/webmeter/myapp。

    我以root身份登录。当我尝试使用 meteor 命令,我收到以下错误消息:

    Unexpected mongo exit code 100. Restarting.
    Unexpected mongo exit code 100. Restarting.
    Unexpected mongo exit code 100. Restarting.
    Can't start mongod
    
    MongoDB had an unspecified uncaught exception.
    Check to make sure that MongoDB is able to write to its database directory.
    

    我的第一个问题是StackOverflow: Creating a new meteor.js file and get error 100, MongoDB not able to write --然而,遵循这些建议(取消流星命令,并检查我有70GB可用磁盘空间)并没有奏效。我很确定这些问题与许可有关。

    我试过了 chown 递归到root:root(当我以root身份登录时),以及 chmod 也递归地变为777,但无济于事。

    我在问你,我下一步应该尝试什么,让我的Meteor应用程序启动?

    提前谢谢。

    26 回复  |  直到 8 年前
        1
  •  88
  •   Prashant    13 年前

    使用 meteor reset 从数据库中删除所有数据。如果您对此感到担忧,请导航到您的项目文件夹。

    cd /path/to/my/project

    在这里你需要擦除 mongodb.lock 文件

    rm .meteor/local/db/mongodb.lock

    现在您可以使用命令运行Meteor,

    meteor

        2
  •  43
  •   cela    7 年前

    删除此文件和文件夹对我有效:

    rm -rf .meteor/local/db/mongod.lock .meteor/local/db/journal/
    
        3
  •  16
  •   Community Mohan Dere    8 年前

    我的问题最终通过运行导出得到了解决 LC_ALL=C 。通过本文中建议的调试步骤发现错误: https://stackoverflow.com/a/15752736/1820510

        4
  •  14
  •   Community Mohan Dere    8 年前

    看起来可以通过从不在挂载中的目录中运行流星来找到临时解决方案。Mongodb似乎不太喜欢共享,所以你需要设置rsync,定期将文件从共享复制到meter运行的目录。

    资料来源: Problems to run examples in Meteor

        5
  •  11
  •   colllin spam_eggs    11 年前

    正如其他地方所建议的那样 meteor reset 在OS X上为我解决了这个问题。

    警告: 流星复位 擦除本地数据库中的所有内容。

        6
  •  5
  •   Navan    12 年前

    这对我有帮助。

    1. 我删除了.mometer/local/db/mongod.lock
    2. 我扼杀了mongod进程。您可以使用“ps-ef|grep-mongo”找到它
        7
  •  5
  •   Paul Sturm    11 年前

    请确保该分区上有足够的可用空间。如果没有,你会得到这个错误。

        8
  •  3
  •   cela    7 年前

    我在Vagrant下运行流星,遇到了这个问题,在找到这个线程之前,我删除了我的MongoDB文件 /var/lib/mongodb 因为有一个 .lock 在那里,这可能是必需的,也可能不是必需的,但值得一看MongoDB可能位于 .meteor 文件夹

        9
  •  2
  •   HammerGuy    11 年前

    每当我重新启动流星和

    rm .meteor/local/db/mongod.lock
    

    不适用于我(我正在开发cloud9在线IDE)

    我现在知道了

    rm .meteor/local/db/mongod.lock .meteor/local/db/local.*
    

    一切恢复正常 没有 正在擦除我的数据库

        10
  •  2
  •   pal    10 年前

    我在Windows 8.1 x64上遇到了同样的问题: '意外的mongo退出代码100。正在重新启动。' . 而“流星重置”或“删除mongod.lock”并没有解决这个问题。 启动时显示错误详细信息 蒙古族 ,我添加了一个 进程结束.on run-mongo.js文件中的函数:

    // Let's not actually start a process if we yielded (eg during
    // findMongoAndKillItDead) and we decided to stop in the middle (eg, because
    // we're in multiple mode and another process exited).
    if (stopped) return;
    
    proc = spawnMongod(mongod_path, port, dbPath, replSetName);
    
    // added this 3 lines just to debug 'Unexpected mongo exit code 100. Restarting.'
    proc.stdout.on('data', function (data) {
      console.log('stdout: ' + data);
    });
    

    然后我得到了一个明确的错误:

    *********************************************************************
    ERROR: dbpath (C:\Users\Pierre-André\Desktop\Pal\Meteor\simple-todos\.meteor\local\db) does not exist.
    Create this directory or give existing directory in --dbpath.
    See http://dochub.mongodb.org/core/startingandstoppingmongo
    *********************************************************************
    

    该错误表示数据库目录不存在。然而,它是存在的。 问题是我的路径中有一个特殊的字符(我名字中的重音)。我把我的流星项目文件夹移到磁盘上的另一个地方,路径是无重音的,它工作得很好。

    希望这会有所帮助。

    这个 运行-mongo.js 文件位于我的电脑中:C:\Users\Pierre Andr\AppData\Local\.metreo\packages\meter tool\1.1.10\mt os.windows.x86_32\tools\runner

    不要忘记在解决问题后删除这3行,否则每次加载项目时都会有很多控制台日志。

        11
  •  1
  •   arun    11 年前

    我的机器意外关机,导致了同样的问题。所有选项都没有帮助,即删除.lock文件或运行导出LC_ALL=C等。
    我使用的是Ubuntu 15.04。我用--dbpath选项启动mongo,该选项指向myApp/.mometer/local/db,mongo启动日志清楚地表明,mongo正试图从journal文件夹中的journal/s恢复数据库。它正在查找不存在的本地.1文件。

    所以我尝试了mongo——恢复,这进一步表明,在我有了日志文件夹之前,它是不起作用的。
    这是我做的
    1.删除了日记文件夹(将其移动到另一个位置,以防万一)
    2.运行mongo——恢复(不能100%确定这是否真的有作用)
    3.启动流星
    它开始时没有出现任何故障,猜猜我的所有数据是什么

        12
  •  1
  •   DavidFM    11 年前

    第一

    $rm.mometer/local/db/mongodb.lock

    如果这不起作用

    尽可能备份

    .流星/本地/db/流星*

    $流星重置

    和恢复

    .流星/本地/db/流星*

        13
  •  1
  •   Nezir    10 年前

    解决了的!就我而言 deleting meteor/local/db/mongodb.lock meteor reset 解决问题。

    谢谢大家!

        14
  •  1
  •   Leon    9 年前

    如果您收到通知,内容如下

    Local folder has run out of space
    

    试着去

    cd .meteor/local/bundler-cache/
    

    并删除该目录中的所有内容。它是一个缓存,所以不应该影响太多。它有时似乎无法控制地增长。

    编辑

    把所有其他答案结合起来试试

    rm -rf .meteor/local/db/mongod.lock .meteor/local/db/local.* .meteor/local/db/journal .meteor/local/bundler-cache/linker/
    

    如果这仍然不起作用,您可能需要在磁盘上释放一些空间。通过以下方式进行检查

    free -m
    

    或者查看您的inode以及通过

    df -h
    
        15
  •  1
  •   Community Mohan Dere    5 年前

    当我第一次在我的新笔记本电脑(Windows 10)中安装node和流星时,我偶然发现了这个问题。我没有对默认安装进行任何更改。

    Meteor重置或从.metreor/local/db删除文件对我来说不起作用,因为我正在创建新的应用程序以在本地运行,并且目录是空的。所以,我可以创建它们,但它们没有运行。也曾尝试使用旧的流星版本创建应用程序,但也失败了。

    解决了的 在我的情况下,将目录更改为c:\

    光盘c:\

    流星创建测试应用程序

    这个目录也适用于我从电脑上转移的先前存在的应用程序。我想这与NFS文件系统有关,我是这方面的新手,所以如果有人能解释更多,我很想了解更多。我无法使用所有可能的目录来存储我的应用程序,这已经很令人沮丧了

        16
  •  0
  •   Luke Clifton    11 年前

    我也有类似的问题。这是因为我的项目目录是我的Dropbox的一部分,在.metromet/local/db目录中有一些冲突的文件。移除这些解决了问题。

        17
  •  0
  •   Sourabh    11 年前

    我可以通过删除本地Mogo数据库锁来恢复错误。

    删除数据库锁定的步骤:

    1. 导航到您的应用程序目录(您有Meteor应用程序文件)
    2. 删除文件$ rm.metreol/local/db/mongod.lock

    如果Meteor应用程序仍在后台运行,则会发生错误。Db锁未由正在运行的应用程序释放,或者由于系统/应用程序关闭不当而无法用于同一应用程序的第二个实例。所以每次都要注意退出应用程序。

        18
  •  0
  •   Agus Arias    11 年前

    我也遇到了同样的问题,我解决了更改.mometer文件夹(MongoDB所在地)所有权的问题

    cd path-to-meteor-app
    sudo chown -R youruser:yourgruop .meteor
    

    希望能帮助到别人!

        19
  •  0
  •   Alex Fernandez    10 年前

    我能够通过导出LC_ALL来修复它,我正在使用Ubuntu

    export LC_ALL=“en_US.UTF-8”

        20
  •  0
  •   Timothy Nyota    10 年前

    如果您已经全局安装了Mongo,那么一定要删除/db/journal文件夹中的所有prealloc文件。

    对于Ubuntu,/db/文件夹通常位于/data中,因此完整路径为/data/db/journal。这可能与其他操作系统不同。

        21
  •  0
  •   Charlie    9 年前

    为我工作: 我把项目移到了另一个目录,因为我有Windows 8.1。当将项目更改为 C:\meteor\project

        22
  •  0
  •   Yorgos Kakavas    9 年前

    当我第一次在我的新笔记本电脑(Windows 10)中安装node和流星时,我偶然发现了这个问题。我没有对默认安装进行任何更改。

    Meteor重置或从.metreor/local/db删除文件对我来说不起作用,因为我正在创建新的应用程序以在本地运行,并且目录是空的。所以,我可以创建它们,但它们没有运行。也曾尝试使用旧的流星版本创建应用程序,但也失败了。

    解决了的 在我的情况下,将目录更改为c:\

    cd c:\

    meteor create testApp
    

    这个目录也适用于我从电脑上转移的先前存在的应用程序。我想这与NFS文件系统有关,我是这方面的新手,所以如果有人能解释更多,我很想了解更多。我无法使用所有可能的目录来存储我的应用程序,这已经很令人沮丧了

        23
  •  0
  •   charlesdeb    9 年前

    我在Windows 10上使用Meteor 1.4时遇到了这个问题。然而,我正在Ubuntu上开发同样的流星应用程序。对我来说,这个问题是由Mongo 3.2在Windows和Ubuntu上的实现方式不同引起的。我的64位Ubuntu安装使用WiredTiger。然而,正如《流星》中所说 documentation :

    If you are using Windows or 32bit Linux, you can update your development
    database to 3.2, however it will continue to use the MMAPv1 storage 
    engine, as the 32bit MongoDB binary does not support WiredTiger.
    

    使用 meteor reset 在Windows上,从Ubuntu中删除了WiredTiger格式的数据库,然后使用旧的MMAPV1引擎重建。这解决了退出代码100的错误。

        24
  •  0
  •   Yoshua Elmaryono    8 年前

    对于那些在Windows上使用bash(WindowsSubsystem For Linux/WSL)的用户,我发现在/mnt目录之外创建流星应用程序可以解决这个问题。

    当我在/mnt/c/workspace的工作区中安装它时,它每次都失败了。 但是,一旦我将它安装到主目录(~)中,它就会第一次运行。 Here's the image.

        25
  •  -1
  •   javier    9 年前

    我也有同样的错误,我只是更改了目录名就解决了这个问题 compa±eros为companeros。。。我知道这对初学者来说是个错误,但我必须告诉大家这一点才能帮助人们。 C: \nube\MEGA\cursos\cursera \CursowebResposivaEjemplos\compa±eros\metro_portfolio_website不工作 C: \nube\MEGA\cursos\cursera\CursowebResposivaEjemplos\companeros\meteo_portfolio_website工作正常。

        26
  •  -1
  •   N3RDPWR    9 年前

    我通过修改/usr/local/lib/meter文件解决了这个问题。

    将“export LC_ALL=C LANG=C”添加到此bash脚本


    #!/usr/bin/env bash程序

    导出LC_ALL=C LANG=C

    捆绑版本=0.5.16