dot
dot

Reputation: 15660

sudo service mongodb restart gives "unrecognized service error" in ubuntu 14.0.4

I just installed mongoDB on ubuntu 14.0.4. I tried to start the shell but I'm getting a connection refused error.

me@medev:/etc/init.d$ mongo
MongoDB shell version: 2.6.5
connecting to: test
2014-11-10T15:06:28.084-0500 warning: Failed to connect to 127.0.0.1:27017, reason: errno:111 Connection refused
2014-11-10T15:06:28.085-0500 Error: couldn't connect to server 127.0.0.1:27017 (127.0.0.1), connection attempt failed at src/mongo/shell/mongo.js:146
exception: connect failed

So I decided to try to restart the service but that's failing too. I get the following error message:

me@medev:/etc/init.d$ sudo service mongodb restart
mongodb: unrecognized service
me@medev:/etc/init.d$ 

This is what I have in my /var/log/mongodb/mongod.log - http://pastebin.com/MrHt8tce

what i've tried so far:

I found another post here: can't start mongodb as sudo which made a comment about remove the mongo lock file.

I deleted the lock file and then retried my command but it still fails as you can see below:

me@medev:/var/lib/mongodb$ sudo rm mongod.lock 
me@medev:/var/lib/mongodb$ ls
journal  local.0  local.ns  _tmp

me@medev:/var/lib/mongodb$ sudo service mongodb start
mongodb: unrecognized service

But I can start it using /etc/init.d as you can see below:

me@medev:/var/lib/mongodb$ sudo /etc/init.d/mongod start
Rather than invoking init scripts through /etc/init.d, use the service(8)
utility, e.g. service mongod start

Since the script you are attempting to invoke has been converted to an
Upstart job, you may also use the start(8) utility, e.g. start mongod
mongod start/running, process 27469
me@medev:/var/lib/mongodb$ ls
journal  local.0  local.ns  mongod.lock

me@medev:/var/lib/mongodb$ mongo
MongoDB shell version: 2.6.5
connecting to: test
> db
test
> 

Any ideas on why I can't start it using the service command would be appreciated. From what I've read, i should be using sudo service mongodb

Upvotes: 54

Views: 155287

Answers (13)

murage kibicho
murage kibicho

Reputation: 644

If you're running MongoDB inside Docker and want to start the MongoDB server use

sudo nohup mongod --quiet --config /etc/mongod.conf &

Upvotes: 0

skoooozy
skoooozy

Reputation: 33

If you're running Ubuntu in WSL (Windows Subsystem for Linux), you will have issues because WSL does not currently support systemd.

The link below explains how to run MongoDB without systemd, and even how to add a script for using the service command with WSL.

https://learn.microsoft.com/en-us/windows/wsl/tutorials/wsl-database#mongodb-init-system-differences

tutorials may start MongoDB using the operating system's built-in init system. You might see the command sudo systemctl status mongodb used in tutorials or articles. Currently WSL does not have support for systemd (a service management system in Linux).

You shouldn't notice a difference, but if a tutorial recommends using sudo systemctl, instead use: sudo /etc/init.d/. For example, sudo systemctl status docker, for WSL would be sudo /etc/init.d/docker status ...or you can also use sudo service docker status.

Upvotes: 1

Vladyslav Kolesov
Vladyslav Kolesov

Reputation: 133

For me nothing have helped, I've ended up with a solution:

create /lib/systemd/system/mongod.service file with content

[Unit]
Description=High-performance, schema-free document-oriented database
After=network.target
Documentation=https://docs.mongodb.org/manual

[Service]
User=mongodb
Group=mongodb
ExecStart=/usr/bin/mongod --quiet --config /etc/mongod.conf

[Install]
WantedBy=multi-user.target

then start/stop commands should work

$ sudo service mongod start

For reference - I have Ubuntu 14.04 LTS, MongoDB 3.2.9 installed from

deb http://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.2 multiverse

Upvotes: 2

Eugene
Eugene

Reputation: 2701

I installed mongo server on Debian Jessie using manual from official site.

It didn't started after recommended command sudo service mongod restart with the same error - mongodb: unrecognized service.

After looking into installed package contents, I noticed that it contains only Systemd service unit, but no SystemV init script:

# dpkg -L mongodb-org-server
/.
/usr
/usr/bin
/usr/bin/mongod
/usr/share
/usr/share/lintian
/usr/share/lintian/overrides
/usr/share/lintian/overrides/mongodb-org-server
/usr/share/doc
/usr/share/doc/mongodb-org-server
/usr/share/doc/mongodb-org-server/LICENSE-Community.txt
/usr/share/doc/mongodb-org-server/README
/usr/share/doc/mongodb-org-server/copyright
/usr/share/doc/mongodb-org-server/changelog.gz
/usr/share/doc/mongodb-org-server/GNU-AGPL-3.0.gz
/usr/share/doc/mongodb-org-server/THIRD-PARTY-NOTICES.gz
/usr/share/doc/mongodb-org-server/MPL-2.gz
/usr/share/man
/usr/share/man/man1
/usr/share/man/man1/mongod.1.gz
/etc
/etc/mongod.conf
/lib
/lib/systemd
/lib/systemd/system
/lib/systemd/system/mongod.service

But my system was running on SysV init:

# stat /proc/1/exe
File: '/proc/1/exe' -> '/sbin/init'

So, there are 2 options now:

Upvotes: 3

Touseef Murtaza
Touseef Murtaza

Reputation: 1946

You can use mongod command instead of mongodb, if you find any issue regarding dbpath in mongo you can use my answer in the link below.

https://stackoverflow.com/a/53057695/8247133

Upvotes: 0

Juan Antonio
Juan Antonio

Reputation: 2614

This is a simple solution that worked for me with the same problem (I think): mv /var/lib/mongodb /var/lib/mongodb_backup mkdir /var/lib/mongodb chmod 700 /var/lib/mongodb chown mongodb:daemon /var/lib/mongodb systemctl restart mongodb or service mongod restart

Upvotes: 0

Ragav Y
Ragav Y

Reputation: 1872

Original Source - https://www.techrepublic.com/article/how-to-install-mongodb-community-edition-on-ubuntu-linux/


If you're on Ubuntu 16.04 and face the unrecognized service error, these instructions will fix it for you:-

  1. Open a terminal window.
  2. Issue the command sudo apt-key adv —keyserver hkp://keyserver.ubuntu.com:80 —recv EA312927
  3. Issue the command sudo touch /etc/apt/sources.list.d/mongodb-org.list
  4. Issue the command sudo gedit /etc/apt/sources.list.d/mongodb-org.list
  5. Copy and paste one of the following lines from below (depending upon your release) into the open file. For 12.04: deb http://repo.mongodb.org/apt/ubuntu precise/mongodb-org/3.6 multiverse For 14.04: deb http://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.6 multiverse For 16.04: deb http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.6 multiverse

Make sure to edit the version number with the appropriate latest version and save the file.

Installation Open a terminal window and issue command sudo apt-get update && sudo apt-get install -y mongodb-org

Let the installation complete.

Running MongoDB To start the database, issue the command sudo service mongodb start. You should now be able to issue the command to see that MongoDB is running: systemctl status mongodb

Ubuntu 16.04 solution If you are using Ubuntu 16.04, you may run into an issue where you see the error mongodb: unrecognized service due to the switch from upstart to systemd. To get around this, you have to follow these steps.

  • If you added the /etc/apt/sources.list.d/mongodb-org.list, remove it with the command sudo rm /etc/apt/sources.list.d/mongodb-org.list

  • Update apt with the command sudo apt-get update

  • Install the official MongoDB version from the standard repositories with the command sudo apt-get install mongodb in order to get the service set up properly

  • Remove what you just installed with the command sudo apt-get remove mongodb && sudo apt-get autoremove

Now follow steps 1 through 5 listed above to install MongoDB; this should re-install the latest version of MongoDB with the systemd services already in place. When you issue the command systemctl status mongodb you should see that the server is active.


I mostly copy pasted the above (with minor modifications and typo fixes) from here - https://www.techrepublic.com/article/how-to-install-mongodb-community-edition-on-ubuntu-linux/

Upvotes: 0

cybafelo
cybafelo

Reputation: 586

You need to make sure the file (ex. /etc/init.d/mongodb) has execute permissions.

chmod +x /etc/init.d/mongodb

Upvotes: 5

ErichBSchulz
ErichBSchulz

Reputation: 15659

For me the solution was to replace

service mongod start

with

start mongod

Upvotes: 7

Parvez Hassan
Parvez Hassan

Reputation: 1735

Try this:

Write mongodb instead of mongod

sudo service mongodb status

Upvotes: 46

Will
Will

Reputation: 24689

For debian, from the 10gen repo, between 2.4.x and 2.6.x, they renamed the init script /etc/init.d/mongodb to /etc/init.d/mongod, and the default config file from /etc/mongodb.conf to /etc/mongod.conf, and the PID and lock files from "mongodb" to "mongod" too. This made upgrading a pain, and I don't see it mentioned in their docs anywhere. Anyway, the solution is to remove the old "mongodb" versions:

update-rc.d -f mongodb remove
rm /etc/init.d/mongodb
rm /var/run/mongodb.pid
diff -ur /etc/mongodb.conf /etc/mongod.conf

Now, look and see what config changes you need to keep, and put them in mongod.conf.

Then:

rm /etc/mongodb.conf

Now you can:

service mongod restart

Upvotes: 3

Leonardo Delfino
Leonardo Delfino

Reputation: 1498

I think you may have installed the version of mongodb for the wrong system distro.

Take a look at how to install mongodb for ubuntu and debian:

http://docs.mongodb.org/manual/tutorial/install-mongodb-on-debian/ http://docs.mongodb.org/manual/tutorial/install-mongodb-on-ubuntu/

I had a similar problem, and what happened was that I was installing the ubuntu packages in debian

Upvotes: 0

Alex M.
Alex M.

Reputation: 238

I got the same error one day You should use this:

1.Get the status of your mongo service:

 /etc/init.d/mongod status

or

 sudo service mongod status

2.If it's not started repair it like this:

sudo rm /var/lib/mongodb/mongod.lock
mongod --repair
sudo service mongodb start

And check again if the service is started again(1)

Upvotes: 21

Related Questions