programing

mongodb는 실행 중입니까?

telebox 2023. 3. 28. 21:36
반응형

mongodb는 실행 중입니까?

유닉스 서버에 Mongodb 와 PHP 드라이버를 인스톨 했습니다.

내 질문은 Mongodb가 실행 중인지 어떻게 알 수 있느냐는 것이다.상태를 확인하는 간단한 명령줄 쿼리가 있습니까?셸에서 한 번 시작하면 셸에서 나와도 계속 실행됩니다(그렇지 않은 것 같습니다).서버 재부팅 시 Mongodb 연결을 지속시키고 자동 시작하려면 어떻게 해야 합니까?

나는 달릴 수 있다:

-bash-3.2$ su  
Password:  
[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  

** NOTE: when using MongoDB 32 bit, you are limited to about 2 gigabytes of data  
**       see http://blog.mongodb.org/post/137788967/32-bit-limitations  

** WARNING: You are running in OpenVZ. This is known to be broken!!!  

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] waiting for connections on port 27017  
Wed Feb 23 08:06:54 [websvr] web admin interface listening on port 28017  

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

-bash-3.2$ cd /var/lib  
-bash-3.2$ ./mongodb-linux-i686-1.6.5/bin/mongo  
MongoDB shell version: 1.6.5  
connecting to: 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 shell version: 1.6.5  
connecting to: test  
Wed Feb 23 08:25:10 Error: couldn't connect to server 127.0.0.1 (anon):1154  
exception: connect failed

다음 중 하나로 확인합니다.

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 mongodb status         # for MongoDB version < 2.6

service mongod status          # for MongoDB version >= 2.6

mongod가 실행 중인지 여부를 확인합니다(이 작업을 수행하려면 root이어야 합니다.또는 모든 프리픽스를 붙여야 합니다).sudo)'grep' 명령어는 항상 별도의 프로세스로 표시됩니다.

로그 파일을 확인합니다./var/log/mongo/mongo.log문제가 보고되었는지 확인합니다.

검색 결과:

ps -ax | grep mongo

좀 더 일관되게 하기 위해서.반환된 값은 실행 중인 mongod 인스턴스의 수를 검출하는 데 사용할 수 있습니다.

mongodb가 실행 중인지 빠르게 확인하기 위해 이 빠른 nc 트릭을 통해 알 수 있습니다.

nc -zvv localhost 27017

위의 명령어는 로컬호스트의 디폴트포트에서 실행되고 있는 것을 전제로 하고 있습니다.

자동 부팅을 위해 이 스레드를 살펴보는 것이 좋습니다.

잘 될 거야

pgrep mongod

Ubuntu에서 (doc)

sudo systemctl 상태 mongod

실행 중인 경우

● mongod.service - MongoDB Database Server
     Loaded: loaded (/lib/systemd/system/mongod.service; disabled; vendor preset: enabled)
     Active: active (running) since Wed 2020-10-14 14:13:40 UTC; 3s ago
       Docs: https://docs.mongodb.org/manual
   Main PID: 1604 (mongod)
     Memory: 210.8M
     CGroup: /system.slice/mongod.service
             └─1604 /usr/bin/mongod --config /etc/mongod.conf

동작하지 않는 경우

● mongod.service - MongoDB Database Server
     Loaded: loaded (/lib/systemd/system/mongod.service; disabled; vendor preset: enabled)
     Active: inactive (dead)
       Docs: https://docs.mongodb.org/manual

mongodb를 시작하려면

sudo systemctl start mongod

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

정답, 셸을 닫으면 MongoDB가 중지됩니다.를 사용해 보세요.--fork대신 데몬으로 실행되도록 하는 mongod 프로세스의 명령줄 arg.저는 Unix 전문가가 아닙니다만, 기계를 기동했을 때에 자동적으로 기동할 수 있는 방법이 있을 것입니다.

예.

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

Mongo의 기동과 정지에 관한 문서 전체를 참조해 주세요.

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

MongoDB 상태

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

서버가 셸 스크립트에서 사용하기에 더 적합한 방법으로 운영 체제에서 실행 중인지 확인하려면 다음과 같이 하십시오.

systemctl is-active mongod

보다는

systemctl status mongod

이것을 시험해 보세요.

sudo systemctl status mongod

이것이 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은 접속이 느리기 때문에 실제로 (ping 등의) 콜을 발신할 필요가 있습니다.php의 경우 try-to-connect 메서드를 사용할 수 있습니다.대본을 만들어라!

PHP:

$dbIsRunning = true
try {
  $m = new MongoClient('localhost:27017');
} catch($e) {
  $dbIsRunning = false
}

언급URL : https://stackoverflow.com/questions/5091624/is-mongodb-running

반응형