it-swarm.com.de

mongod: nicht anerkannter Service, mongod.service ist bereits vorhanden

andere Dienste wie Apache2 usw. funktionieren einwandfrei. Aber wenn ich Sudo service mongod start eingebe, erhalte ich diesen Fehler:

mongod: unrecognized service

Ich habe diese Datei:

/lib/systemd/system/mongod.service 

Es sagt dies:

[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

Ich hatte das gleiche Problem, nachdem ich das Docker-Image für Ubuntu: 17: 04 gezogen und Mongodb-org installiert hatte

Es sieht so aus, als hätte Mongodb eine systemd-Startdatei erstellt, die bereits durch upstart ersetzt wurde.

Um dieses Problem zu umgehen:

  1. Erstellen Sie eine neue Datei /etc/init/mongod.conf (erfordert Sudo-Rechte). Sie können verwenden: Sudo gedit /etc/init/mongod.conf

  2. Fügen Sie den folgenden Inhalt in die neu erstellte Startdatei ein:

    # 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. Jetzt können Sie die folgenden Befehle verwenden:

    Sudo service mongod start

    Sudo service mongod stop

    Sudo service mongod status

referenz: https://github.com/mongodb/mongo/blob/master/debian/mongod.upstart

4

Beim Versuch, den Mongo-Dienst zu starten, wurde immer wieder derselbe Fehler angezeigt. mongod hat funktioniert, aber dann muss ich ein Terminalfenster offen halten, um mongo in einem anderen zu verwenden. nichts anderes funktionierte für mich außer diesem:

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

Der obige Befehl startet den mongo-Daemon, falls er noch nicht gestartet ist. Dann können Sie einfach 'mongo' in die Befehlszeile eingeben und mongo funktioniert

(von hier: https://docs.mongodb.com/manual/tutorial/manage-mongodb-processes/ )

1
user909945

Ich habe zuerst die Mongo-Lock-Datei entfernt

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

dann startete der Mongod mit dem folgenden Befehl

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