এক কমান্ডে কীভাবে মঙ্গো ডিবি বন্ধ করবেন


159

আমার ক্লিমে মোঙ্গোডিবি শুরু / বন্ধ করতে সক্ষম হওয়া দরকার। এটি শুরু করা বেশ সহজ:

./mongod

তবে মঙ্গো ডিবি বন্ধ করতে, আমাকে প্রথমে খোলা মঙ্গো শেলটি চালাতে হবে এবং তারপরে দুটি কমান্ড টাইপ করতে হবে:

$। / মঙ্গো

অ্যাডমিন ব্যবহার করুন

db.shutdownServer ()

সুতরাং আমি জানি না কীভাবে একটি লাইনে মঙ্গো ডিবি বন্ধ করা যায়। কোন সাহায্য?

উত্তর:


226

মঙ্গোডিবি শুরু এবং বন্ধ করছে মঙ্গোডিবি ম্যানুয়ালটিতে আচ্ছাদিত। এটি শেল, ক্লিপ, ড্রাইভার ইত্যাদির মাধ্যমে মঙ্গোডিবি বন্ধ করার বিভিন্ন বিকল্পের ব্যাখ্যা দেয় এবং এটি মঙ্গোডিবি (যেমন ডেটা দুর্নীতি হিসাবে) ভুলভাবে বন্ধ করার ঝুঁকি এবং বিভিন্ন হত্যার সংকেত সম্পর্কে আলোচনা করে।

উপরন্তু, যদি আপনার জন্য একটি প্যাকেজ ম্যানেজার ব্যবহার করে MongoDB ইনস্টল করা আছে উবুন্টু বা ডেবিয়ান তারপর আপনি MongoDB বন্ধ করতে পারবেন (বর্তমানে উবুন্টু মধ্যে mongod) নিম্নরূপ:

  • ভুঁইফোড়: sudo service mongod stop

  • Sysvinit: sudo /etc/init.d/mongod stop

অথবা ম্যাক ওএস এক্সে

অথবা রেড হ্যাট ভিত্তিক সিস্টেমে:

  • service mongod stop

বা উইন্ডোজে যদি আপনি নামের মতো কোনও পরিষেবা ইনস্টল করেন MongoDB:

  • net stop MongoDB

এবং যদি কোনও পরিষেবা (উইন্ডোজ 7+ হিসাবে) হিসাবে ইনস্টল না করা থাকে তবে আপনি চালাতে পারেন:

  • taskkill /f /im mongod.exe

কোনও অশুচি শাটডাউন সম্পর্কিত সমস্যাগুলি সম্পর্কে, আরও কীভাবে এই জাতীয় পরিস্থিতিটি সর্বোত্তমভাবে এড়ানো যায় এবং কোনও অশুচি শাটডাউন হওয়ার ক্ষেত্রে কী করা উচিত, দয়া করে দেখুন: একটি অপ্রত্যাশিত শাটডাউন হওয়ার পরে ডেটা পুনরুদ্ধার করুন


5
আমি বিশ্বাস করি সেবার অর্ডার হ'ল sudo service mongodb [start|stop|restart|status]sudo service stop mongodbফলাফলগুলিতে: বন্ধ করুন: অচেনা পরিষেবা
জ্যাকব

2
@ জ্যাকব - আমরা কেবল এটি উবুন্টুতে চেষ্টা করেছি, আপনি ঠিক বলেছেন, আমি উত্তরটি সম্পাদনা করেছি।
অ্যান্ড্রু এম

5
ম্যাকের জন্য, আপনি কেবল 'কিল্লাল মঙ্গোদ' করতে পারেন। এইভাবে, আপনার পিআইডি জানার দরকার নেই।
জন এম

2
অথবা ম্যাকে: 'পিএস -এক্স | গ্রেপ মংড ', তারপরে প্রক্রিয়া নম্বরটি মেরে ফেলুন
ব্রায়ান গ্রেস

1
নতুন উবুন্টু 18.04 এ, আমি এটি> সুডো সার্ভিস মংডোড স্টপ ... "মংডব" নয়
নাসিফ উম্মার

101

আপনি যদি আক্ষরিক অর্থে আপনার মূল প্রশ্নে কমান্ডের সমতুল্য একটি লাইন চান, আপনি উপন্যাসটি করতে পারেন:

mongo --eval "db.getSiblingDB('admin').shutdownServer()"

পরিষেবাগুলির মাধ্যমে মঙ্গোডিবি শুরু এবং বন্ধ করার বিষয়ে মার্কের উত্তরটি আরও সাধারণ (এবং প্রস্তাবিত) প্রশাসনিক পন্থা।


3
দুর্দান্ত উত্তর। বিকাশ মেশিনে একাধিক উদাহরণ স্থাপন করার সময় (স্থাপনার আগে প্রতিলিপি সেট করার চেষ্টা করা) এটি একটি .bat start C:\mongodb\bin\mongod.exe --config C:\net2\primary1-pc\mongod.cfg start C:\mongodb\bin\mongod.exe --config C:\net2\secondary1-pc\mongod.cfg ... এবং তারপরে শাটডাউন করতে সহায়তা করে C:\mongodb\bin\mongo.exe --eval "db.getSiblingDB('admin').shutdownServer()" --port 27017 C:\mongodb\bin\mongo.exe --eval "db.getSiblingDB('admin').shutdownServer()" --port 27018 C:\mongodb\bin\mongo.exe --eval "db.getSiblingDB('admin').shutdownServer()" --port 27019 ...
বিকাশকারী মারিয়াস ইলানাস

2
উইন্ডোজটিতে যেখানে এটি পরিষেবা হিসাবে ইনস্টল করা হয়েছে সেখানে আমি খুঁজে পেলাম যে net stop MongoDBএটি নির্ভরযোগ্য নয়, তাই আমি অনুরূপ কিছু ব্যবহার করেছি:mongo admin --eval "db.shutdownServer()" । চিয়ার্স!
নাটজে

1
@ স্টেনি যখন আমি উইন্ডোজগুলিতে 'নেট স্টপ মোঙ্গোডিবি' ব্যবহার করি তখন এটি "সিস্টেম ত্রুটি 1067 ঘটেছে" দেখায়
চরণ তেজ

48

mongod --dbpath /path/to/your/db --shutdown

অফিসিয়াল আরও তথ্য: http://docs.mongodb.org/manual/tutorial/manage-mongodb-processes/


আমি এইভাবে ব্যবহার করতে পছন্দ করি, এটি ডিবিপাথ ছাড়াইও কাজ করে, আপনার যদি কেবল একটি উদাহরণ চলমান থাকে তবে তা বোঝা যায়।
র‌্যাডটেক

2
দেখে মনে হচ্ছে এটি 2.4.xx থেকে সর্বশেষে নতুন সংস্করণগুলির জন্য কাজ করছে না।
আলেক্সাভার

এটিই কেবলমাত্র উত্তর যা আমি দেখেছি যে বাস্তবে কাজ করেছে।
ডেভিড বেটজ

6
MacOS 10,12, mongod v3.4.10: Error parsing command line: unrecognised option '--shutdown':-(
t0r0X

এটির জন্য যদি একটি প্রতিরূপ সেটের প্রাথমিকটিতে চালানো হয় তবে এর জন্য কোনও সংজ্ঞায়িত আচরণ রয়েছে? মনে হয় এটি এমন আচরণ করে db.shutdownServer({force:1,timeoutSecs:0})যা দ্বিতীয়দের দ্বিতীয় ডেটা ফ্লাশিংকে বাধা দেয়। আপনি সবসময় এটি চাইবেন না।
ড্যানিয়েল এফ

30

সার্ভারটি যদি কোনও টার্মিনালে অগ্রভাগ প্রক্রিয়া হিসাবে চলমান থাকে তবে এটি টিপুন দিয়েই করা যায়

Ctrl-C

কোনও চলমান সার্ভারটি পরিষ্কারভাবে বন্ধ করার আরেকটি উপায় হ'ল শাটডাউন কমান্ডটি ব্যবহার করা,

> use admin
> db.shutdownServer();

অন্যথায়, কিলের মতো আদেশটি সিগন্যাল প্রেরণে ব্যবহার করা যেতে পারে। যদি মঙ্গোডের পিআইডি হিসাবে 10014 থাকে তবে কমান্ডটি হবে

kill -2 10014

3
কিল ব্যবহার করা ভাল ধারণা নয়, এটি একটি ভাঙ্গা ডিবি হতে পারে, যার পুনরায় আরম্ভের জন্য মেরামতের প্রয়োজন। "মংডোড উদাহরণটি শেষ করতে কখনই কিল -9 (অর্থাত্ সিগ্কিল) ব্যবহার করবেন না।" দস্তাবেজ: ডকস.মোংডব.অর্গ
জেনস এ। কোচ

7
@ জেনাসা.কোচ ইয়া, নানহে কাউকেই -9 সিগন্যাল ব্যবহার করতে বলছিলেন না, তাই বলে "কিল ব্যবহার করা ভাল ধারণা নয়" সহজভাবে সঠিক নয়। কেবল তাত্ক্ষণিক সমাপ্তি অনিরাপদ - একটি সাধারণ কিল পুরোপুরি নিরাপদ এবং আপনি যে ডকুমেন্টেশন এর সাথে যুক্ত করেছেন এটি সমর্থন করে।
বিটি

18

আমি সিগন্যাল দিয়ে থামার জন্য অফিশিয়াল মোঙ্গোডিবি ডকুমেন্টেশন অনুসরণ করেছি । নিম্নলিখিত কমান্ড ব্যবহার করা যেতে পারে ওয়ান (PID, প্রতিনিধিত্ব করে Process IDএর mongodপ্রক্রিয়া):

kill PID

যা 15 (সিগন্যাল) সিগন্যাল প্রেরণ করে বা

kill -2 PID

যা সংকেত 2 (সাইন ইন) প্রেরণ করে।

মঙ্গোডিবি ডকুমেন্টেশন থেকে সতর্কতা : কোনও উদাহরণ শেষ করতে
কখনই kill -9(অর্থাত্ সিগ্কিল) ব্যবহার করবেন না mongod

আপনার যদি একাধিক দৃষ্টান্ত চলমান থাকে বা আপনি পিআইডি সম্পর্কে চিন্তা করেন না, আপনি pkillসমস্ত চলমান mongodপ্রক্রিয়াতে সংকেত প্রেরণ করতে ব্যবহার করতে পারেন :

pkill mongod

অথবা

pkill -2 mongod

বা, আরও সুরক্ষিত, কেবলমাত্র আপনার নিজস্ব প্রক্রিয়াগুলিতে:

pkill -U $USER mongod

অথবা

pkill -2 -U $USER mongod

পিএস
দ্রষ্টব্য: আমি এই বিকল্পটির আশ্রয় নিয়েছি, কারণ mongod --shutdownবর্তমান মঙ্গোডিবি ডকুমেন্টেশনে উল্লিখিত হলেও কৌতূহলীভাবে আমার মেশিনে কাজ করে না (ম্যাকোস, মঙ্গোডব ভি 3.4.10, ইনস্টল করা homebrew):
Error parsing command line: unrecognised option '--shutdown'

পিপিএস
(ম্যাকোস নির্দিষ্ট) এর আগে যে কেউ আশ্চর্য হওয়ার আগে: না, আমি কমান্ড দিয়ে এটিকে থামাতে পারিনি
brew services stop mongodb
কারণ আমি এটি দিয়ে শুরু করি নি
brew services start mongodb
আমি mongodএকটি কাস্টম কমান্ড লাইন দিয়ে শুরু করেছি :-)


দুর্দান্ত উত্তর, যা নিশ্চিত করেছে যে মঙ্গোডিবি করুণভাবে সাইনটারএম সিগন্যাল ব্যবহার করে শেষ করতে পারে। মঙ্গোডিবি যদি ডকারে চালানো হয় তবে এটি গুরুত্বপূর্ণ - ডকস.ডোকার . com / compose / compose - file / #stop_grace_period । অতিরিক্ত নোট যে সিএমডি ["মঙ্গোদ", "বিকল্প", "বিকল্প"] ব্যবহার করার প্রয়োজন তা নিশ্চিত করার জন্য মঙ্গোডিবি পিআইডি 1 পেয়েছে, তারপরে ডকারের মাধ্যমে প্রেরিত সিগন্যালটি আপনার ডিবিতে পৌঁছে যাবে।
ল্যামিসন

9

ব্যবহার mongod --shutdown

অফিসিয়াল ডক অনুসারে: ম্যানেজ-মংডোডব-প্রসেসস /

: ডি


এই আমি খুঁজছিলাম ছিল। অনেক ধন্যবাদ.
গৌরব শর্মা

প্রক্রিয়া হত্যা করতে ব্যর্থ: ত্রুটি: 1 অপারেশন অনুমোদিত নয়।
এইচটিএম


এটি কেবল আমার পক্ষে কাজ করেছিল। আমার পরিষেবা হিসাবে মঙ্গোদ নেই এবং শুরুর কমান্ডটি ত্রুটিটি দেখিয়েছিল যে মঙ্গোদ ইতিমধ্যে চলছে। ধন্যবাদ একটি টন, মানুষ!
সঞ্জিত এ

8

আমার বিশেষ কেসটি হ'ল:

পূর্বে মঙ্গোদ শুরু করে:

sudo -u mongod mongod -f /etc/mongod.conf

এখন, থামতে চাই mongod

এবং অফিসিয়াল ডক স্টপ মংড প্রক্রিয়াগুলি দেখুন , চেষ্টা করেছেন:

(1) shutdownServerতবে ব্যর্থ:

> use admin
switched to db admin
> db.shutdownServer()
2019-03-06T14:13:15.334+0800 E QUERY    [thread1] Error: shutdownServer failed: {
        "ok" : 0,
        "errmsg" : "shutdown must run from localhost when running db without auth",
        "code" : 13
} :
_getErrorWithCode@src/mongo/shell/utils.js:25:13
DB.prototype.shutdownServer@src/mongo/shell/db.js:302:1
@(shell):1:1

(২) --shutdownএখনও ব্যর্থ হয়েছে:

# mongod --shutdown
There doesn't seem to be a server running with dbpath: /data/db

(3) পূর্ববর্তী কমান্ড যুক্ত - শাটডাউন:

sudo -u mongod mongod -f /etc/mongod.conf --shutdown
killing process with pid: 30213
failed to kill process: errno:1 Operation not permitted

(4) serviceথামাতে ব্যবহার করুন:

service mongod stop

এবং

service mongod status

প্রত্যাশিত দেখান Active: inactive (dead)তবে mongodবাস্তবে এখনও চলছে, PS থেকে প্রক্রিয়াটি দেখতে পারেন:

# ps -edaf | grep mongo | grep -v grep
root     30213     1  0 Feb04 ?        03:33:22 mongod --port PORT --dbpath=/var/lib/mongo

এবং পরিশেষে , সত্যিই মঙ্গোদ বন্ধ করুন:

# sudo mongod -f /etc/mongod.conf --shutdown
killing process with pid: 30213

এখনও অবধি, মূল কারণ: এখনও অজানা ...

আশা করি উপরের সমাধানটি আপনার জন্য কার্যকর।


6

mongostop.bat নামে একটি ফাইল তৈরি করুন

এটিতে নিম্নলিখিত কোডটি সংরক্ষণ করুন

 mongo admin --eval "db.shutdownServer()"

mongostop.bat ফাইলটি চালান এবং আপনি সাফল্যের সাথে মঙ্গো বন্ধ করে দিয়েছেন


4

কমান্ড লাইন ব্যবহার করে মংডোব পরিষেবা শুরু বা বন্ধ করতে একটি লাইনার;

  1. পরিষেবাটি শুরু করতে: NET START MONGODB
  2. পরিষেবাটি বন্ধ করতে: NET STOP MONGODB

আমি নিজেই এটি ব্যবহার করি, এটি কাজ করে।


উইন্ডোতে এই কমান্ডগুলি ব্যবহার করে আমি এটি পেয়েছি: c: ong mongodb \ bin> নেট শুরু করুন মংডোডবি পরিষেবার নামটি অবৈধ। নেট হেল্পএমএসজি 2185 টাইপ করার মাধ্যমে আরও সহায়তা পাওয়া যায় c নেট হেল্পএমএসজি 2185 টাইপ করে আরও সহায়তা পাওয়া যায়

উইন্ডোতে আপনাকে প্রথমে --install বিকল্পটি ব্যবহার করে একটি পরিষেবা হিসাবে মঙ্গোদব ইনস্টল করতে হবে। সার্ভিস হিসাবে এটি ইনস্টল করতে আপনি যে আদেশগুলি নীচের অনুরূপ কোনও কমান্ড ব্যবহার করতে পারেন। মংডোড - ইনস্টল --directoryperdb --dbpath সি: ong মোংডব্ব-উইন 32-x86_64-2.4.6 \ তথ্য - লগপথ সি: ong মংডোব-উইন 32-x86_64-2.4.6 \ লগ \ মংডোব.লগ --লোগাপেন্ড - রেস্ট উপরের কমান্ডটি অ্যাডমিনস্ট্রেটর সুবিধাসহ চালানো উচিত। এটি হয়ে যাওয়ার পরে আপনি হুগো প্রদত্ত নেট স্টার্ট এবং নেট স্টপ কমান্ডগুলি ব্যবহার করতে পারেন।
এড ওস্ট

3

প্রদত্ত আদেশগুলি থেকে আমি মনে করি আপনি লিনাক্সে রয়েছেন।

মঙ্গোডিবি শুরু করুন:

$ sudo service mongod start
mongod start/running, process XXXXX 

স্থিতি পরীক্ষা করুন:

$ sudo service mongod status
mongod start/running, process XXXXX 

মঙ্গোডিবি বন্ধ করুন:

$ sudo service mongod stop
mongod stop/waiting 

2

স্টেনির উত্তরের ভিত্তিতে বিল্ডিং:

mongo --eval "db.getSiblingDB('admin').shutdownServer();quit()"

আমি দেখতে পেয়েছি যে সার্ভারটি বন্ধ হওয়ার পরে মঙ্গো ডিবিতে পুনরায় সংযোগ করার চেষ্টা করছে যা দেরি ও ত্রুটির বার্তাগুলির কারণ হতে পারে। শাটডাউন করার পরে প্রস্থান () যুক্ত করা এটির গতি বাড়ায় এবং বার্তাগুলি হ্রাস করে, তবে এখনও একটি রয়েছে।

আমি প্রসঙ্গটিও যুক্ত করতে চাই - আমি অন্য কোডের পরীক্ষার অংশ হিসাবে মঙ্গোদ শুরু এবং থামিয়ে দিচ্ছি, সুতরাং পরিষেবা হিসাবে নিবন্ধন করা ব্যবহারের ক্ষেত্রে উপযুক্ত নয়। আমি এমন কিছু দিয়ে শেষ করার আশা করছি যা সমস্ত প্ল্যাটফর্মগুলিতে চলে (এটি এখন উইন্ডোতে পরীক্ষিত)। আমি মঙ্গড ৩. 3..৯ ব্যবহার করছি


1

আমি কেবল করেছি:

quit();

দয়া করে নোট করুন আমি মঙ্গো 3.0 ব্যবহার করছি।

মোঙ্গো


আপনি যদি কোনও ভিএম-তে চালাচ্ছিলেন তবে সেই কমান্ডটি কেবল ভিএমকে থামিয়ে দেবে।
এইচটিএম

1

আপনার ম্যাকের টার্মিনাল উইন্ডোতে, নিয়ন্ত্রণ + সি টিপুন press


কেউ এটিকে হ্রাস করেছেন। এটি মঙ্গো ডকুমেন্টেশন অনুসারে মঙ্গো থামানোর অন্যতম উপায়। বেশিরভাগ পরিস্থিতিতে এটি কাজ করবে না, কারণ মোঙ্গো সেই টার্মিনালে চলবে এবং পটভূমিতে বা রাক্ষস হিসাবে নয়, "কখনও কখনও" এই সমাধানটি কাজ করবে। ডাউনভোট করার সময় কেন তা ব্যাখ্যা করে ভালো হয়
তানিসডিএলজে

1

হোমব্রিউ ব্যবহার (প্রস্তাবিত উপায়):

শুরুতেই:

brew services start mongodb-community

থামতে:

brew services stop mongodb-community


0

আমি উবুন্টুতে এই স্টার্টআপ স্ক্রিপ্টটি ব্যবহার করি।

#!/bin/sh

### BEGIN INIT INFO
# Provides:     mongodb
# Required-Sart:
# Required-Stop:
# Default-Start:        2 3 4 5
# Default-Stop:         0 1 6
# Short-Description: mongodb
# Description: mongo db server
### END INIT INFO

. /lib/lsb/init-functions

PROGRAM=/opt/mongo/bin/mongod
MONGOPID=`ps -ef | grep 'mongod' | grep -v grep | awk '{print $2}'`

test -x $PROGRAM || exit 0

case "$1" in
  start)
     log_begin_msg "Starting MongoDB server"
         ulimit -v unlimited.
         ulimit -n 100000
     /opt/mongo/bin/mongod --fork --quiet --dbpath /data/db --bind_ip 127.0.0.1 --rest   --config /etc/mongod.conf.
     log_end_msg 0
     ;;
  stop)
     log_begin_msg "Stopping MongoDB server"
     if [ ! -z "$MONGOPID" ]; then
kill -15 $MONGOPID
     fi
     log_end_msg 0
     ;;
  status)
     ;;
  *)
     log_success_msg "Usage: /etc/init.d/mongodb {start|stop|status}"
     exit 1
esac

exit 0

2
সুতরাং আপনি ঠিক সরাসরি মঙ্গোডিবি মেরেছেন, তাইনা? আমি মঙ্গোডিবি'র একটি শিক্ষানবিস, এটিকে মারতে কি কোনও ব্যথা রয়েছে? আমি এসকিউএল সার্ভার বা ওরাকল-এর জন্য জানি, তারা যদি সমস্যার সমাধান করে তবেই আমরা তাদের হত্যা করব।
XiaoYao

হত্যার জন্য -9 হয় তবে আপনি 15 সংকেত প্রেরণ করেন।
বোরিস ইভানভ

0

উইন্ডোজ

পাওয়ারশেলের মধ্যে এটি: Stop-Service MongoDB

তারপরে আবার এটি শুরু করতে: Start-Service MongoDB

যাচাই করতে এটা শুরু হচ্ছে কিনা সঞ্চালন করুন: net start | findstr MongoDB

দ্রষ্টব্য: উপরে ধরে নেওয়া হয়েছে মঙ্গোডিবি পরিষেবা হিসাবে নিবন্ধিত হয়েছে


0

দয়া করে একটি দ্রুত এবং সহজ সমাধানের জন্য আপনার ওএস দ্বারা সরবরাহিত টাস্ক ম্যানেজারটির সদ্ব্যবহার করুন । উইন্ডোজ 10 থেকে / এর স্ক্রিনগ্র্যাব নীচে হাইলাইট করা প্রক্রিয়াটিতে ডান ক্লিক করুন এবং স্টপ নির্বাচন করুন । ইতিমধ্যে বন্ধ হয়ে থাকলে শুরু নির্বাচন করুন ।

এখানে চিত্র বর্ণনা লিখুন

দয়া করে দ্রষ্টব্য: অভ্যন্তরীণভাবে আদেশগুলি একই কাজ করছে যা আপনাকে উইন্ডোজ / আপনার ওএস দ্বারা সরবরাহিত একটি জিইউআই (টাস্ক ম্যানেজার) ব্যবহার করে ম্যানুয়ালি করতে হবে। যদিও, এই পন্থাটি শুরু করার জন্য অধ্যয়ন / অনুশীলনের উদ্দেশ্যে ব্যবহার করা হবে এবং এর কারণে আপনাকে অবরুদ্ধ করা হবে না।


আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.