I have to start my MongoDB server every time the system restarts. How do I configure it to start with my OS? I am on Ubuntu 11.04.
I had the same "problem" on Debian jessie, and my simple solution is:
systemctl enable mongod.service
I think in Ubuntu it's the same.
-- EDIT --
According to the comments, it works on Ubuntu too. On Ubuntu 18.04 LTS it seems to be this solution:
systemctl enable mongodb.service
Thanks to @Adam. Maybe they changed the name of the service
If you install MongoDB using the Advanced Packaging Tool (apt) then it'll configure your startup scripts to automatically run Mongo when the system boots.
The steps are as follows, first configure apt to be able to download the Mongo package:
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv 7F0CEB10 sudo nano /etc/apt/sources.list
Add this line to sources.list then save:
deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen
Then download and install Mongo with the apt-get utility:
sudo apt-get update sudo apt-get upgrade sudo apt-get install mongodb-10gen
If you want to make any changes to config, edit your mongodb.conf and restart:
sudo nano /etc/mongodb.conf sudo service mongod restart
Controlling all the init.d service links should be done with the update-rc.d tool
i.e. to turn on the mongod daemon in the default runlevels (i.e. turn it on at boot):
update-rc.d mongodb defaults
See https://help.ubuntu.com/community/UbuntuBootupHowto for more information. This link tells you everything you want to know about how to set programs at boot.
If you have installed the MongoDB Community Edition (which is the recommended way since it receives more frequent updates than the package distributed in the Ubuntu package repository) you configure the start / stop behaviour of
mongod via the upstart init script
/etc/init/mongod.conf, which defaults to start the daemon automatically on boot
start on runlevel  stop on runlevel 
If you do not want it to start automatically, replace those 2 lines with
stop on runlevel 
I am using crontab for Ubuntu. It works fine. To be able to edit file
Sudo crontab –e
Add this line to the file
@reboot sudo service mongod start &
The "&" sigh at the end help it to work background.
Ctrl + x for exit, press "Y" once prompted. And keep the file name as "crontab".
If you have Ubuntu 16.04 LTS, you can enable mongo to start on boot typing this in your console:
sudo systemctl enable mongod
I have used this approach with MongoDB Community Edition 3.6 and it works. Reboot your machine and test if mongo is running typing:
sudo service mongod status
You can use systemctl command to enable your mongo service at run at system boot.
Create a service such that
sudo nano /etc/systemd/system/mongodb.service
Place content in the file
[Unit] Description=MongoDB Database Service Wants=network.target After=network.target [Service] ExecStart=/usr/bin/mongod --config /etc/mongod.conf ExecReload=/bin/kill -HUP $MAINPID Restart=always User=mongodb Group=mongodb StandardOutput=syslog StandardError=syslog
after that you will be able to use service commands like
sudo service mongod start|stop|restart
and then if you want to make it up at machine boot, you can create mongod file under
chkconfig --levels 235 mongod on?
where mongodb is the name of your service
I have consistently used this post as a starting point to get a new sharding rig up and running. It includes a section on configuring upstart that I've also used.
If you install MongoDB with
apt-get as described in the MongoDB Ubuntu installation guide, it will come with a basic startup script and config file. (use of a config file is highly recommended)
You can also take a look here for an old post that links to an
In either case, the basic premise is that you're setting up a service and then configuring to start-stop with the computer. This is pretty common technique for servers, there are lots of tutorials around for doing exactly this.