web-dev-qa-db-fra.com

mongod: service non reconnu, mongod.service est déjà présent

d'autres services comme Apache2, etc. fonctionnent bien. Mais quand je tape Sudo service mongod start j'obtiens cette erreur:

mongod: unrecognized service

J'ai ce fichier:

/lib/systemd/system/mongod.service 

Il dit ceci:

[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
# file size
LimitFSIZE=infinity
# cpu time
LimitCPU=infinity
# virtual memory size
LimitAS=infinity
# open files
LimitNOFILE=64000
# processes/threads
LimitNPROC=64000
# total threads (user+kernel)
TasksMax=infinity
TasksAccounting=false

# Recommended limits for for mongod as specified in
# http://docs.mongodb.org/manual/reference/ulimit/#recommended-settings

[Install]
WantedBy=multi-user.target
5
user1735921

J'ai eu le même problème après avoir tiré l'ubuntu: 17: 04 l'image de docker et installé mongodb-org

Il semble que Mongodb ait créé un fichier de démarrage systemd qui avait déjà été remplacé par upstart.

Pour contourner le problème:

  1. Créez un nouveau fichier /etc/init/mongod.conf (requiert les droits Sudo). Vous pouvez utiliser: Sudo gedit /etc/init/mongod.conf

  2. Collez le contenu suivant dans le fichier upstart nouvellement créé:

    # Ubuntu upstart file at /etc/init/mongod.conf
    
    # Recommended ulimit values for mongod or mongos
    # See http://docs.mongodb.org/manual/reference/ulimit/#recommended-settings
    #
    limit fsize unlimited unlimited
    limit cpu unlimited unlimited
    limit as unlimited unlimited
    limit nofile 64000 64000
    limit rss unlimited unlimited
    limit nproc 64000 64000
    
    kill timeout 300 # wait 300s between SIGTERM and SIGKILL.
    
    pre-start script
      DAEMONUSER=${DAEMONUSER:-mongodb}
      if [ ! -d /var/lib/mongodb ]; then
        mkdir -p /var/lib/mongodb && chown mongodb:mongodb /var/lib/mongodb
      fi
      if [ ! -d /var/log/mongodb ]; then
        mkdir -p /var/log/mongodb && chown mongodb:mongodb /var/log/mongodb
      fi
      touch /var/run/mongodb.pid
      chown $DAEMONUSER /var/run/mongodb.pid
    end script
    
    start on runlevel [2345]
    stop on runlevel [06]
    
    script
      ENABLE_MONGOD="yes"
      CONF=/etc/mongod.conf
      DAEMON=/usr/bin/mongod
      DAEMONUSER=${DAEMONUSER:-mongodb}
      DAEMONGROUP=${DAEMONGROUP:-mongodb}
    
      if [ -f /etc/default/mongod ]; then . /etc/default/mongod; fi
    
      # Handle NUMA access to CPUs (SERVER-3574)
      # This verifies the existence of numactl as well as testing that the command works
      NUMACTL_ARGS="--interleave=all"
      if which numactl >/dev/null 2>/dev/null && numactl $NUMACTL_ARGS ls / >/dev/null 2>/dev/null
      then
        NUMACTL="$(which numactl) -- $NUMACTL_ARGS"
        DAEMON_OPTS=${DAEMON_OPTS:-"--config $CONF"}
      else
        NUMACTL=""
        DAEMON_OPTS="-- "${DAEMON_OPTS:-"--config $CONF"}
      fi
    
      if [ "x$ENABLE_MONGOD" = "xyes" ]
      then
        exec start-stop-daemon --start \
            --chuid $DAEMONUSER:$DAEMONGROUP \
            --pidfile /var/run/mongodb.pid \
            --make-pidfile \
            --exec $NUMACTL $DAEMON $DAEMON_OPTS
      fi
    end script
    
  3. Maintenant, vous pouvez utiliser les commandes suivantes:

    Sudo service mongod start

    Sudo service mongod stop

    Sudo service mongod status

référence: https://github.com/mongodb/mongo/blob/master/debian/mongod.upstart

4
Hussein El Motayam

J'ai continué à avoir la même erreur en essayant de démarrer le service Mongo. Mongod a fonctionné, mais je dois ensuite garder une fenêtre de terminal ouverte pour utiliser Mongo dans une autre. rien d'autre n'a fonctionné pour moi excepté ceci:

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

La commande ci-dessus lance le démon mongo si vous ne l'avez pas déjà démarré, puis vous pouvez simplement taper 'mongo' en ligne de commande et que mongo fonctionne

(à partir d'ici: https://docs.mongodb.com/manual/tutorial/manage-mongodb-processes/ )

1
user909945

J'ai d'abord supprimé le fichier de verrouillage mongo

Sudo rm /var/lib/mongodb/mongod.lock

puis a commencé le mongod en utilisant la commande suivante

Sudo mongod --fork -f /etc/mongod.conf
1
Rifaideen