2012-05-24 35 views
6

Tôi gặp một vấn đề lạ với MongoDB sau khi cài đặt nó là kết thúc với một thông điệpMongoDB không được bắt đầu từ năm ubuntu

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

là gì sai ở đây tôi làm theo các bước đưa ra ở đây: http://www.mongodb.org/display/DOCS/Ubuntu+and+Debian+packages

+0

kiểm tra con đường mongod và hơn ./mongod – gsagrawal

+0

Bạn đang sử dụng phiên bản Ubuntu/Debian nào? Phiên bản MongoDB nào? Bạn có thể tìm thấy ../bin/mongod? Có chạy nó trong giao diện điều khiển làm việc? – mayhewr

+0

@mayhewr không không có/bin/mongod –

Trả lời

10

Vấn đề là bạn đang cố gắng để cài đặt một phiên bản đóng gói cho các dịch vụ Upstart init, nhưng Debian Squeeze vẫn sử dụng SysV init theo mặc định.

Có một lưu ý về vấn đề này trong quá trình cài đặt tài liệu: http://docs.mongodb.org/manual/tutorial/install-mongodb-on-debian-or-ubuntu-linux/#installing-mongodb

Nếu bạn đang sử dụng Debian hoặc Ubuntu sử dụng quá trình init phong cách SysV, sử dụng các dòng sau:

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

Điều này có nghĩa mà bạn cần phải tạo MongoDB bắt đầu script trong /etc/init.d

Hãy thử điều này 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 

sau khi gõ vào terminal:

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

Có, tôi đã thử điều này, nhưng tôi không làm việc. Tôi lưu trữ tập tin đổi tên thành mongodb tại /etc/init.d và sau đó làm cho nó thực thi nhưng nó không hoạt động. –

+0

bạn cần thực hiện một số hành động trong thiết bị đầu cuối và cung cấp cho tôi thông tin đầu ra –

+0

trong /etc/init.d Tôi nhận được một dòng $ lrwxrwxrwx 1 root root 21 May 24 12:08 mongodb ->/lib/init/upstart-job /etc/init.d/mongodb start \\ /etc/init.d/mongodb: dòng 10: /etc/rc.d/init.d/functions: Không có tệp hoặc thư mục như vậy lỗi này –

Các vấn đề liên quan