What is the correct way to start a mongod service on linux / OS X?
Solution 1
With recent builds of mongodb community edition, this is straightforward.
When you install via brew, it tells you what exactly to do. There is no need to create a new launch control file.
$ brew install mongodb
==> Downloading https://homebrew.bintray.com/bottles/mongodb-3.0.6.yosemite.bottle.tar.gz ### 100.0%
==> Pouring mongodb-3.0.6.yosemite.bottle.tar.gz
==> Caveats
To have launchd start mongodb at login:
ln -sfv /usr/local/opt/mongodb/*.plist ~/Library/LaunchAgents
Then to load mongodb now:
launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mongodb.plist
Or, if you don't want/need launchctl, you can just run:
mongod --config /usr/local/etc/mongod.conf
==> Summary
🍺 /usr/local/Cellar/mongodb/3.0.6: 17 files, 159M
Solution 2
Edit: you should now use brew services start mongodb
, as in Gergo's answer...
When you install/upgrade mongodb, brew will tell you what to do:
To have launchd start mongodb at login:
ln -sfv /usr/local/opt/mongodb/*.plist ~/Library/LaunchAgents
Then to load mongodb now:
launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mongodb.plist
Or, if you don't want/need launchctl, you can just run:
mongod
It works perfectly.
Solution 3
Homebrew's services
tap integrates formulas with the launchctl
manager. Adding it is easy:
brew tap homebrew/services
You can then launch MongoDB with this command (this will also start mongodb on boot):
brew services start mongodb
You can also use stop
or restart
:
brew services stop mongodb
brew services restart mongodb
Solution 4
If you feel like having a simple gui to fix this (as I do), then I can recommend the mongodb pref-pane. Description: https://www.mongodb.com/blog/post/macosx-preferences-pane-for-mongodb
On github: https://github.com/remysaissy/mongodb-macosx-prefspane
Solution 5
Just installed MongoDB via Homebrew. At the end of the installation console, you can see an output as follows:
To start mongodb:
brew services start mongodb
Or, if you don't want/need a background service you can just run:
mongod --config /usr/local/etc/mongod.conf
So, brew services start mongodb, managed to run MongoDB as a service for me.
Alex C
Updated on June 08, 2020Comments
-
Alex C almost 4 years
I've installed mongodb and have been able to run it, work with it, do simple DB read / write type stuff. Now I'm trying to set up my Mac to run mongod as a service.
I get "Command not found" in response to:
init mongod start
In response to:
~: service mongod start service: This command still works, but it is deprecated. Please use launchctl(8) instead. service: failed to start the 'mongod' service
And if I try:
~: launchctl start mongod launchctl start error: No such process
So obviously I'm blundering around a bit. Next step seems to be typing in random characters until something works. The command which does work is:
mongod --quiet &
I'm not sure, maybe that is the way you're supposed to do it? Maybe I should just take off 'quiet mode' and add> /logs/mongo.log
to the end of the command line?I'm building a development environment on a Mac with the intention of doing the same thing on a linux server. I'm just not sure of the Bash commands. All the other searches I do with trying to pull up the answer give me advice for windows machines.
Perhaps someone knows the linux version of the commands?
Thanks very much
-
Marius Butuc about 11 yearsDoes
mongod
need to display information through the window server; does it need to be a launch agent or is it enough to make it a launch daemon? -
Jakob Jingleheimer almost 11 yearsHeads up to OSX users: I installed mongo via homebrew and it included
/usr/local/Cellar/mongodb/2.4.5-x86_64/homebrew.mxcl.mongodb.plist
(and was properly configured for my installation). Just copiedhomebrew.mxcl.mongodb.plist
into LaunchAgents and followed the rest of these instructions (substitutinghomebrew.mxcl.mongodb
fororg.mongodb.mongod
) and it works great. -
Matt Fletcher over 10 yearsI hadn't seen that instruction! This works perfectly for me on Mac OSX 10.8.4, I think I installed it with Brew. Jacob's comment in the accepted answer pointed to an unknown file when I tried it.
-
verboze about 10 yearsI prefer this solution over the accepted answer. Copying the plist in the answer above make things a little harder when updating mongo; you'll have to remember to update the paths as needed. Using a symlink as advised by homebrew however takes care of this for you. I used this approach, and the aliases from the answer above (replacing org.mongodb.mongod with homebrew.mxcl.mongodb), and things work great
-
smile2day over 9 yearsLiked the answer but found that brew will remove services in the future. brew services start mongodb Warning: brew services is unsupported and will be removed soon.
-
Gergo Erdosi over 9 yearsThat's sad news. For now it's just deprecated, which means it will be removed sometime, but it still works. Hopefully someone will volunteer to maintain it as a tap. I will update my answer when it gets removed, or when a tap becomes available.
-
Hoppo over 9 yearsLink no longer available.
-
Scott over 9 yearsnot sure if it was the exact same, but fixed link to go to article explaining the same concept
-
Oxford212 over 9 yearsYou'd better scroll down for Mario Alemi's answer ;)
-
paulmelnikow about 9 yearsOP wants to run it as a service, not interactively. A good answer should address this directly.
-
Igor Shubovych about 9 years
-
iplus26 over 8 yearsIt has been removed already, since I see
Error: Unknown command: services
when I tried this way. -
ttemple over 8 yearsI tried this solution and the database I was using "disappeared"! I believe this is the reason: the default plist provided by homebrew stores the mongod configuration at /usr/local/etc/mongod.conf. This configuration specifies the dbpath to be /usr/local/var/mongodb instead of the default /data/db. Just wanted to note this in the event it happens to someone else. To get my database to appear again, I had to unload and remove the symbolic link.
-
Gergo Erdosi over 8 yearsThanks, updated my answer with the new instructions.
-
the over 8 yearsNote: There's some weirdness with
launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mongodb.plist
insidetmux
-
Timeless over 8 years@ttemple any idea how to undo all these?
-
Phil almost 7 yearsThanks for this answer. @iplus26 it still works for me
-
user269867 almost 5 years/Library/LaunchAgents/homebrew.mxcl.mongodb.plist: No such file or directory
-
Jeremy Caney almost 4 yearsThis is the same answer @Rejeev-Divakaran provided over five years ago. Please be sure to check existing answers before submitting a new one. If one exists that suggests your same approach, the appropriate action is to upvote it—a privilege you’ll earn after receiving four more reputation points, I believe.
-
C. Sederqvist almost 4 yearsYou don't have to use
brew tap homebrew/services
any longer and haven't for quite some time. Think you'll get a deprecation message if you do that now. This tap is called automatically when you listbrew services
the first time. -
C. Sederqvist almost 4 yearsFirst of all: MongoDB has it's own official Homebrew Tap you should use to install the community edition.
$ brew tap mongodb/brew
then install using$ brew install mongodb-community
. As for the services, if you run$ brew services
Homebrew now has that Tap included, so no need for doing anything. Also, about the startup services, if you just need MongoDB after you log in (as a dev server not a production server), use the~/Library/LaunchAgents/
directory and not the system/Library/LaunchDeamons
the latter requires root privileges .