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

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

我想让 mongod 在后台一直运行。最好的方法是什么?有点像我在启动时运行 MySQL 的方式,它总是在后台运行。也许只是一些 bash 脚本,但如果有更好的方法就更好了。如果只是 bash - 那会是什么样子?谢谢。

答案1

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

--fork

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

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

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

service mongod status
service mongod start
service mongod stop

答案2

由于您使用的是 Mac,您应该使用自制安装 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现在将在后台启动,并且每次您重新启动计算机时都会启动。

答案3

尝试运行以下命令:

mongod --fork --syslog

答案4

在 OS X 上让程序在启动时运行的最佳方式是创建一个 LaunchDaemon(请参阅Apple 的文档,并查看 /System/Library/LaunchDaemons 中一些 Apple 提供的守护进程)并将其安装在 /Library/LaunchDaemons 中。 林贡可以帮助您创建.plist 文件。

相关内容