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 서비스 상태가 표시됩니다.

아마도 개발 서버를 제대로 종료하지 않았거나 비슷한 이유 때문일 것입니다.이 문제를 해결하려면 잠금을 해제하고 다음을 사용하여 서버를 시작하십시오.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
'programing' 카테고리의 다른 글
| Excel interop 객체를 적절하게 정리하려면 어떻게 해야 하나요? (0) | 2023.04.02 |
|---|---|
| React에서 Link 컴포넌트를 사용할 때 jsx-a11y/anchor-is-valid를 수정하려면 어떻게 해야 합니까? (0) | 2023.04.02 |
| React Native Flat List의 List Header Component를 스틱으로 만들려면 어떻게 해야 합니까? (0) | 2023.03.28 |
| AngularJS에서 지시 스타일을 조작하는 방법은 무엇입니까? (0) | 2023.03.28 |
| 데이터베이스 내의 모든 문자열 인스턴스를 검색 및 치환하려면 어떻게 해야 합니까? (0) | 2023.03.28 |