2012-05-24 13 views
6

Mam dziwny problem z MongoDB po instalacji jest to końcowy z komunikatemMongoDB nie zaczyna w ubuntu

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

co jest nie tak tutaj Śledziłem czynności opisane tutaj: http://www.mongodb.org/display/DOCS/Ubuntu+and+Debian+packages

+0

wyboru ścieżka mongod i niż ./mongod – gsagrawal

+0

Jakiej wersji Ubuntu/Debian używasz? Jaką wersję MongoDB? Czy możesz znaleźć ../bin/mongod? Czy działa w konsoli? – mayhewr

+0

@mayhewr no nie ma/bin/mongod –

Odpowiedz

10

Problem jest, że próbujesz zainstalować wersję zapakowanego do usług dorobkiewicz init, ale nadal korzysta Debian Squeeze SysV init, domyślnie.

Jest uwaga na ten temat w docs zainstalować: http://docs.mongodb.org/manual/tutorial/install-mongodb-on-debian-or-ubuntu-linux/#installing-mongodb

Jeśli używasz Debiana lub Ubuntu, który używa proces init w stylu SysV należy stosować następujące linie:

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

Oznacza to, że trzeba stworzyć MongoDB uruchomić skrypt /etc/init.d/

Spróbuj 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 

po typu w terminalu:

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

Tak, próbowałem tego, ale nie działa. Przechowuję zmianę nazwy pliku na mongodb w /etc/init.d, a następnie sprawiam, że będzie on wykonywalny, ale nie działa. –

+0

musisz wykonać pewne czynności w terminalu i podać mi dane wyjściowe –

+0

w /etc/init.d Mam linię $ lrwxrwxrwx 1 root root 21 maja 24 12:08 mongodb ->/lib/init/upstart-job /etc/init.d/mongodb start \\ /etc/init.d/mongodb: wiersz 10: /etc/rc.d/init.d/functions: Brak takiego pliku lub katalogu ten błąd –