mongodb가 실행 중입니까?


117

유닉스 서버에 mongodb와 php 드라이버를 설치했습니다.

내 질문은 mongodb가 실행 중인지 어떻게 알 수 있습니까? 상태를 확인하는 간단한 명령 줄 쿼리가 있습니까? 셸에서 한 번 시작하면 셸을 종료해도 계속 실행됩니다 (이 경우가 아닌 것 같습니다). mongodb 연결을 영구적으로 만들고 서버 재부팅시 자동으로 시작하려면 어떻게해야합니까?

난 뛸 수있어:

-bash-3.2 $ su
비밀번호 :
[root @ xxx] # cd / var / lib
[root @ xxx] # ./mongodb-linux-i686-1.6.5/bin/mongod
./mongodb-linux-i686-1.6. 5 / bin / mongod --help for help and startup options
Wed Feb 23 08:06:54 MongoDB starting : pid = 7271 port = 27017 dbpath = / data / db / 32-bit

** 참고 : MongoDB 32 비트를 사용하는 경우 약 2GB의 데이터로 제한됩니다.
** http://blog.mongodb.org/post/137788967/32-bit-limitations 참조

** 경고 : OpenVZ에서 실행 중입니다. 고장난 것으로 알려져 있습니다 !!!

Wed Feb 23 08:06:54 db version v1.6.5, pdfile version 4.5
Wed Feb 23 08:06:54 git version : 0eb017e9b2828155a67c5612183337b89e12e291
Wed Feb 23 08:06:54 sys info : Linux domU-12-31-39-01 -70-B4 2.6.21.7-2.fc8xen # 1 SMP Fri
Feb 15 12:39:36 EST 2008 i686 BOOST_LIB_VERSION = 1_37
Wed Feb 23 08:06:54 [initandlisten] 27017
Wed Feb 23 08 : 06:54 [websvr] 28017 포트에서 수신 대기중인 웹 관리자 인터페이스

별도의 셸을 열면 mongodb에 연결할 수 있습니다.

-bash-3.2 $ cd / var / lib
-bash-3.2 $ ./mongodb-linux-i686-1.6.5/bin/mongo
MongoDB 쉘 버전 : 1.6.5
연결 대상 : test
db.foo.find ()
{ " _id ": ObjectId ("4d63d7d3eb95985ab19c8feb "),"a ": 1}

그러나 초기 셸을 닫으면 연결할 수 없습니다.

-bash-3.2 $ cd / var / lib
-bash-3.2 $ ./mongodb-linux-i686-1.6.5/bin/mongo
MongoDB 쉘 버전 : 1.6.5
연결 대상 : 테스트
수 2 월 23 일 08:25:10 오류 : 서버 127.0.0.1 (anon)에 연결할 수 없습니다. : 1154
예외 : 연결 실패

답변:


144

다음 중 하나로 확인하십시오.

   ps -edaf | grep mongo | grep -v grep  # "ps" flags may differ on your OS

또는

   /etc/init.d/mongodb status     # for MongoDB version < 2.6

   /etc/init.d/mongod status      # for MongoDB version >= 2.6

또는

   service mongod status

mongod가 실행 중인지 확인합니다 (이 작업을 수행하려면 루트 여야합니다 sudo. 또는 모든 접두사에 ). 'grep'명령은 항상 별도의 프로세스로 표시됩니다.

로그 파일 /var/log/mongo/mongo.log를 확인하여보고 된 문제가 있는지 확인하십시오.


20
이어야합니다 : service mongodb status
MhdSyrwan

12
또한 작업을 수행 할 수 있습니다 pgrep mongo.
slm

1
나는 이것을 얻었다 : 501 5365 418 0 4:10 pm ttys000 0 : 00.00 grep mongo, 실행 중이라는 의미입니까?
L1ghtk3ira

1
서비스 mongod 상태는 나를 위해 작동하지 않았지만 서비스 mongodb 상태는 작동합니다.
viks

5
몽고 2.6에서 서비스는 mongod 이전의 MongoDB를, 혼란 '예
츠 키미

40

나는 찾는다 :

ps -ax | grep mongo

훨씬 더 일관성이 있습니다. 반환 된 값은 실행중인 mongod 인스턴스 수를 감지하는 데 사용할 수 있습니다.


6
또한 실행중인 grep 프로세스를 반환하지 않도록 필터를 추가 할 수도 있습니다. 그래서 : ps -ax | grep -v grep | grep
mongo

34

mongodb가 실행 중인지 빠르게 확인하기 위해이 빠른 nc 트릭이 알려줍니다.

nc -zvv localhost 27017

위의 명령은 localhost의 기본 포트에서 실행 중이라고 가정합니다.

자동 시작을 위해이 스레드 를 살펴볼 수 있습니다 .


1
예, 이것은 포트를 수신하는 것이 있는지 확인하는 경우에만 작동합니다. 이 경우 출력에 27017 open, 또는 else 가 포함됩니다 Connection refused.
알렉산더


9

mongodb의 현재 실행 상태를 확인하려면 다음을 사용하십시오. sudo service mongodb status


8

맞습니다. 셸을 닫으면 MongoDB가 중지됩니다. --fork대신 데몬으로 실행되도록하는 mongod 프로세스에 대한 명령 줄 인수를 사용해보십시오 . 나는 유닉스 전문가는 아니지만 머신이 부팅 될 때 자동으로 시작할 수있는 방법이있을 것이라고 확신합니다.

예 :

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

Mongo 시작 및 중지 에 대한 전체 문서를 확인하십시오 .


감사. 나는 이것을 얻었다 : [root@xxx lib]# ./mongodb-linux-i686-1.6.5/bin/mongod --fork --logpath /var/log/m ongodb.log --logappend all output going to: /var/log/mongodb.log forked process: 7518그러나 내가 셸을 닫고 새 것을 열 때 나는 얻는다Connect failed

흠, 나를 위해 작동합니다 (Ubuntu 64bit VM, Mongo v1.7.6), 그래서 왜 그것이 당신에게 적합하지 않은지 잘 모르겠습니다. 당신이 작업을 얻을 수없는 경우, 가장 좋은 방법은 MongoDB를 포럼에 게시 할 수 있습니다 : groups.google.com/group/mongodb-user
AdaTheDev

하지만으로 시작했는데 &이제 프로세스 ID를 찾을 수 없습니다.
bobobobo 2014 년

@bobobobo-프로세스 ID를 어떻게 찾으려고합니까?
Tass

ps -e | grep mongod
bobobobo 2014 년

3

아래 명령을 사용하여 MongoDB 상태를 확인할 수 있습니다. 예 : sudo service MongoDB status스크린 샷과 같이 MongoDB 서비스 상태를 표시합니다.

MongoDB 상태


2

아마도 내 개발 서버를 제대로 종료하지 않았거나 비슷한 이유로 때문일 것입니다. 이를 수정하려면 잠금을 제거하고 다음을 사용하여 서버를 시작하십시오. sudo rm /var/lib/mongodb/mongod.lock ; sudo start mongodb


1

나는 이것이 PHP 용이라는 것을 알고 있지만 여기에 노드에 대한 솔루션을 찾고 있습니다. mongoskin 사용 :

mongodb.admin().ping(function(err) {
    if(err === null)
        // true - you got a conntion, congratulations
    else if(err.message.indexOf('failed to connect') !== -1)
        // false - database isn't around
    else
        // actual error, do something about it
})

다른 드라이버를 사용하면 연결을 시도 할 수 있으며 실패하면 mongo 서버가 다운되었음을 알 수 있습니다. Mongoskin은 느리게 연결되기 때문에 실제로 전화를 걸어야합니다 (예 : 핑). PHP의 경우 연결 시도 방법을 사용할 수 있습니다. 스크립트를 만드세요!

PHP :

$dbIsRunning = true
try {
  $m = new MongoClient('localhost:27017');
} catch($e) {
  $dbIsRunning = false
}
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.