2012-05-24 12 views
6

Sto avendo un problema strano con MongoDB dopo l'installazione si sta finendo con un messaggioMongoDB non parte in Ubuntu

invoke-rc.d: unknown initscript, /etc/init.d/mongodb not found. 
dpkg: error processing mongodb-10gen (--configure): 

Cosa c'è di sbagliato qui ho seguito i passi qui riportati: http://www.mongodb.org/display/DOCS/Ubuntu+and+Debian+packages

+0

controllo il percorso di mongod e poi ./mongod – gsagrawal

+0

Quale versione di Ubuntu/Debian stai usando? Quale versione di MongoDB? Riesci a trovare ../bin/mongod? Funziona nella console? – mayhewr

+0

@mayhewr non v'è alcuna/bin/mongod –

risposta

10

Il problema è che si sta tentando di installare una versione confezionata per i servizi di Upstart init, ma Debian Squeeze utilizza ancora SysV init di default.

C'è una nota su questo nella documentazione di installazione: http://docs.mongodb.org/manual/tutorial/install-mongodb-on-debian-or-ubuntu-linux/#installing-mongodb

Se si utilizza Debian o Ubuntu che utilizza processo init stile SysV, utilizzare la seguente riga:

deb http://downloads-distro.mongodb.org/repo/debian-sysvinit dist 10gen 
4

Ciò significa che è necessario creare MongoDB script di avvio in /etc/init.d/

Prova questa script

#!/bin/bash 
# 
# mongodb  Startup script for the mongodb server 
# 
# chkconfig: - 64 36 
# description: MongoDB Database Server 
# 
# processname: mongodb 
# 

# Source function library 
. /lib/lsb/init-functions 

if [ -f /etc/sysconfig/mongodb ]; then 
    . /etc/sysconfig/mongodb 
fi 

prog="mongod" 
mongod="/usr/local/mongodb/bin/mongod" 
RETVAL=0 

start() { 
    echo -n $"Starting $prog: " 
    daemon $mongod "--fork --logpath /var/log/mongodb.log --logappend 2>&1 >>/var/log/mongodb.log" 
    RETVAL=$? 
    echo 
    [ $RETVAL -eq 0 ] && touch /var/lock/subsys/$prog 
    return $RETVAL 
} 

stop() { 
    echo -n $"Stopping $prog: " 
    killproc $prog 
    RETVAL=$? 
    echo 
    [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$prog 
    return $RETVAL 
} 

reload() { 
    echo -n $"Reloading $prog: " 
    killproc $prog -HUP 
    RETVAL=$? 
    echo 
    return $RETVAL 
} 

case "$1" in 
    start) 
     start 
     ;; 
    stop) 
     stop 
     ;; 
    restart) 
     stop 
     start 
     ;; 
    condrestart) 
     if [ -f /var/lock/subsys/$prog ]; then 
      stop 
      start 
     fi 
     ;; 
    reload) 
     reload 
     ;; 
    status) 
     status $mongod 
     RETVAL=$? 
     ;; 
    *) 
     echo $"Usage: $0 {start|stop|restart|condrestart|reload|status}" 
     RETVAL=1 
esac 

exit $RETVAL 

dopo Tipo nel terminale:

sudo chmod +x /etc/init.d/mongodb 
sudo /etc/init.d/mongodb start 
ps -A | grep mongod 
+0

Sì, ho provato questo, ma non funziona. Conservo quel file rinominandolo in mongodb in /etc/init.d e quindi lo rendi eseguibile ma non funziona. –

+0

è necessario eseguire alcune azioni nel terminale e fornirmi informazioni di output –

+0

in /etc/init.d Ho ottenuto una riga $ lrwxrwxrwx 1 root root 21 May 24 12:08 mongodb ->/lib/init/upstart-job /etc/init.d/mongodb start \\ /etc/init.d/mongodb: riga 10: /etc/rc.d/init.d/functions: nessun file o directory questo errore –