首页 文章

在Google Compute Engine实例上启动时运行mongoDB

提问于
浏览
0

我已经设置了Mongo来运行GCE实例 .

起初我在 / 工作并使用 sudo mongod 启动mongo,但合理地它会打印一些警告:

警告:您以root用户身份运行此进程,不建议这样做 .

所以我把所有东西都移到了 /home/my_google_account ,我可以通过SSH进入并运行 mongod .

Now I’d like to have some actions, including mongod, run at startup . 根据我的理解,正确的方法是使用Google startup scripts:从控制台,您可以提供如下的脚本作为元数据键值对:

#! /bin/bash
apt-get update
mongod -f /home/my_google_account/mongod.conf

It works ,但正如Google所说,这是以root身份执行的:

实例始终以root身份执行启动脚本,并且仅在创建任何SSH密钥包含在实例元数据中的新用户后才执行这些脚本 .

所以mongod进程以root权限运行,我仍然得到我原来的警告:

警告:您以root用户身份运行此进程,不建议这样做 .

我该怎么办?

有没有办法让启动脚本不以root身份运行?或者我应该在 /sudo 一起工作并忽略警告?每个人似乎都建议您应该在用户的主文件夹中工作,获得必要的权限,并使用您的权限运行mongod . 但是,启动脚本无论如何都将以root身份运行!

1 回答

  • 0

    试试这个 - 将用户添加到您的永久磁盘 -

    useradd -ms /bin/bash mongouser
    #replace /data/db with your data location
    chown -R mongouser /data/db
    

    将此添加到您的starup脚本中

    apt-get update
    sudo mongouser -c 'mongod -f /home/my_google_account/mongod.conf'
    

相关问题