如何在 unix (mac osx) 上在后台运行 mongod?

Rya*_*ery 57 unix mac-osx background-process mongodb

我想在后台运行 mongod 作为一种始终存在的东西。什么是最好的方法来做到这一点?有点像我可以在启动时运行 MySQL 的方式,它总是在后台运行。也许这只是一些 bash 脚本,但很高兴听到是否有更好的方法。如果它只是 bash - 那会是什么样子?谢谢。

小智 91

MongoDB 守护进程 (mongod) 有一个命令行选项可以在后台运行服务器...

--fork
Run Code Online (Sandbox Code Playgroud)

此命令行选项还要求您指定一个文件来记录消息(因为它不能使用当前控制台)。此命令的示例如下所示:

mongod --fork --logpath /var/log/mongod.log
Run Code Online (Sandbox Code Playgroud)

您可以将其放入 /etc/init.d/mongod bash 脚本文件中。然后让服务在启动时运行,在 /etc/rc#.d/ 中创建标准符号链接(S## 和 K##)。这是一个教程,更详细地解释了这个过程。向下滚动到标题为“Init Script Activation”的部分。这还有一个额外的好处,就是能够执行诸如...

service mongod status
service mongod start
service mongod stop
Run Code Online (Sandbox Code Playgroud)


And*_*rew 11

由于您使用的是 Mac,您应该使用Homebrew安装 MongoDB(如果您还没有安装 Homebrew,则需要安装):

brew install mongodb
Run Code Online (Sandbox Code Playgroud)

假设安装的版本名为2.0.6-x86_64. 然后添加它为您生成的 LaunchAgent plist 文件:

mkdir -p ~/Library/LaunchAgents
cp /usr/local/Cellar/mongodb/2.0.6-x86_64/homebrew.mxcl.mongodb.plist ~/Library/LaunchAgents/
launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.mongodb.plist
Run Code Online (Sandbox Code Playgroud)

这将mongod在后台启动,每次重新启动计算机时都会启动。


小智 6

尝试运行以下命令:

mongod --fork --syslog
Run Code Online (Sandbox Code Playgroud)