我怎样才能在后台运行mongod(mac osx)?

我想在后台运行mongod作为一件永远存在的事情。 什么是最好的方法来做到这一点? 有点像我可以在启动时运行MySQL的方式,它总是在后台运行。 也许这只是一些bash脚本,但是如果有更好的方法,这将是很好的。 如果只是bash – 那会是什么样子? 谢谢。

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

 --fork 

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

 mongod --fork --logpath /var/log/mongod.log 

你可以把它放到/etc/init.d/mongod bash脚本文件中。 然后在启动时运行该服务,在/etc/rc#.d/中创build标准符号链接(S ##&K ##)。 这里是一个教程 ,更详细地解释了这个过程。 向下滚动到标题为“Init Script Activation”的部分。 这也有能够执行命令,如…

 service mongod status service mongod start service mongod stop 

由于你在Mac上,你应该使用Homebrew来安装MongoDB(如果你还没有安装Homebrew的话):

 brew install mongodb 

假设安装的版本名为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 

这将在现在和每次重新启动计算机时在后台启动mongod

尝试运行以下命令:

 mongod --fork --syslog 

传统上,在后台运行,只是从开始
nohup some_command – 启动&
所以这是nohup&,把你想要在nohup和&后台运行的命令。 它将像你一样运行,closuresterminal或注销后它将继续运行。 你可以通过sudo启动它作为另一个用户。 为了让它在启动时运行,将它添加到init脚本replace(不知道他们叫什么)。 它会将任何输出写入到一个名为nohup.out的文件中

在OS X启动时运行程序的最好方法是创build一个LaunchDaemon(参见Apple的文档 ,并查看/ System / Library / LaunchDaemons中的一些Apple提供的守护进程),并将其安装到/ Library / LaunchDaemons。 Lingon可以帮助您创build.plist文件。