我已将Mongo设置为在GCE实例上运行。
起初我在/
工作并使用sudo mongod
启动mongo,但合理的是它打印了一些警告:
警告:您以root用户身份运行此进程, 这是不推荐的。
所以我把所有内容都移到了/home/my_google_account
,我可以通过SSH进入并运行mongod
。
现在我想要一些行动,包括mongod
,在启动时运行。根据我的理解,正确的方法是使用Google startup scripts:在控制台中,您可以提供如下的脚本作为元数据键值对:
#! /bin/bash
apt-get update
mongod -f /home/my_google_account/mongod.conf
有效,但正如Google所说,这是以root身份执行的:
实例始终以root身份执行启动脚本 在创建任何具有SSH密钥的新用户后执行这些脚本 包含在实例元数据中。
所以mongod进程以root权限运行,我仍然收到我原来的警告:
警告:您以root用户身份运行此进程, 这是不推荐的。
我该怎么办?
启动脚本是否有办法不以root身份运行?
或者我应该/
与sudo
一起工作并忽略警告?
每个人似乎都建议您应该在用户的主文件夹中工作,获得必要的权限,并使用您的权限运行mongod。但是,启动脚本无论如何都将以root身份运行!
答案 0 :(得分: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'