MongoDB は標準プログラムとして実行されます。  mongodコマンドを発行してオプションを指定すると、コマンドラインから MongoDB を起動できます。 オプションのリストについては、 mongodリファレンスを参照してください。
次の例えでは、 mongodプロセスを含むディレクトリがシステム パス内にあることを前提としています。 mongodプロセスは、個々のサーバー上で実行されるプライマリ データベース プロセスです。 mongosは、クライアントの観点から見るとmongodと同等の一貫した MongoDB インターフェースを提供します。  mongoshバイナリは管理 shell を提供します。
このドキュメントでは、mongod プロセスについて説明します。ただし、このドキュメントの一部は、mongos インスタンスにも当てはまる場合があります。
mongodプロセスの開始
デフォルトでは、MongoDB はポート 27017 でクライアントからの接続を listen し、データを /data/db ディレクトリに保存します。
Windows の場合、このパスは MongoDB を起動するドライブにあります。たとえば、--dbpath を指定しない場合、C:\ ドライブで MongoDB サーバーを起動すると、すべてのデータファイルが C:\data\db に保存されます。
すべてのデフォルトを使用して MongoDB を起動するには、システム shell で次のコマンドを実行します。
mongod 
データディレクトリの指定
mongod でデータファイルを /data/db 以外のパスに保存する場合は、dbPath を指定できます。dbPath は、mongod を開始する前に存在している必要があります。存在しない場合は、ディレクトリと権限を作成して、mongod がこのパスにデータを読み書きできるようにします。権限の詳細については、セキュリティ操作のドキュメントを参照してください。
mongodがデータディレクトリとして使用する dbPath を指定するには、--dbpath オプションを使用します。次の呼び出しでは、mongod インスタンスが開始され、/srv/mongodb パスにデータが格納されます。
mongod --dbpath /srv/mongodb/ 
注意
mongod は、デプロイに関するトラブルシューティングを行う MongoDB エンジニアを支援するために、フルタイム診断データ取得メカニズムを備えています。このスレッドが失敗すると、元のプロセスが終了します。特に一般的な障害を回避するには、プロセスを実行しているユーザーに FTDC diagnostic.data ディレクトリを作成する権限があることを確認します。mongod の場合、このディレクトリは storage.dbPath 内にあります。mongos の場合は、systemLog.path と同じ階層にあります。
TCP ポートの指定
1 つのネットワーク インターフェース上の接続を同時に listen できるのはプロセスは 1 つだけです。単一のマシンで複数の mongod プロセスを実行する場合、またはこのポートを使用する必要がある他のプロセスが存在する場合には、それぞれにクライアント接続を listen する別のポートを割り当てる必要があります。
mongod にポートを指定するには、コマンドラインで --port オプションを使用します。次のコマンドは、ポート 12345 で listen する mongod を開始します。
mongod --port 12345 
混乱を避けるために、可能な限りデフォルトのポート番号を使用してください。
mongodをデーモンとして起動する
mongodプロセスをデーモン(fork)として実行し、かつその出力をログファイルに書込み (write) するには、--fork と --logpath のオプションを使用します。ログディレクトリは作成する必要がありますが、ログファイルが存在しない場合は mongod によって作成されます。
次のコマンドでは、mongod をデーモンとして起動し、ログ出力を/var/log/mongodb/mongod.logに記録します。
mongod --fork --logpath /var/log/mongodb/mongod.log 
追加の構成オプション
一般的な構成と一般的なユースケースの配置の概要については、「自己管理型配置のためのランタイムデータベース構成 」を参照してください。
mongodプロセスを停止
クリーン シャットダウンでは、mongod は保留中のすべての操作を完了し、すべてのデータをデータファイルにフラッシュして、すべてのデータファイルを閉じます。他のシャットダウンはクリーンではなく、データファイルの有効性を損なう可能性があります。
確実にクリーンなシャットダウンを行うには、常に次のいずれかの方法で mongod インスタンスをシャットダウンしてください。
使用 shutdownServer()
次のようにdb.shutdownServer()メソッドを使用して、 mongosh } からmongodをシャットダウンします。
use admin db.shutdownServer() 
init スクリプトから同じメソッドを呼び出しても、同じ結果が得られます。
authorization が有効になっているシステムの場合、ユーザーは admin データベースに認証されているとき、または認証が有効になっていないシステム上の localhost インターフェース経由で認証された場合のみ db.shutdownServer() を実行できます。
使用 --shutdown
Linux でのみサポートされます。コマンドラインから、--shutdown オプションを使用して mongod をシャットダウンします。
mongod --shutdown 
使用 CTRL-C
mongod インスタンスを対話モード(--forkなし)で実行している場合、クリーン シャットダウンを実行するには Control-C を実行します。
使用 kill
Linux と macOS でのみサポートされています。コマンドラインから、次のいずれかのコマンドを使用して特定の mongod インスタンスをシャットダウンします。
kill <mongod process ID> kill -2 <mongod process ID> 
SIGTERM  とレプリカセット
レプリカセットのプライマリが SIGTERM を受け取ると、プライマリはシャットダウンする前に降格を試みます。
- 降格が成功した場合、インスタンスはその後、新しいプライマリの選挙に投票せず、シャットダウンを続行します。 
- 降格が失敗すると、インスタンスはシャットダウンを続行します。 
SIGKILL
警告
mongod インスタンスを終了させるのに、kill -9(SIGKILL)は絶対に使用しないでください。
mongodプロセスのトラブルシューティング
バックトレースの生成
Linux で実行されている MongoDB インスタンスの場合:
- mongodプロセスと- mongosプロセスが- SIGUSR2シグナルを受信すると、バックトレースの詳細が各プロセス スレッドのログに追加されます。
- バックトレースの詳細では、プロセスの関数呼び出しが表示されます。必要に応じて診断に使用したり、 MongoDB サポートに提供したりできます。 
バックトレース機能はこれらのアーキテクチャで利用できます。
- x86_64
- arm64(MongoDB 5.0.10と6.0以降)
実行中の mongod プロセスに SIGUSR2 シグナルを発行するには、次のコマンドを使用します。
kill -SIGUSR2 <mongod process ID> 
レプリカセットの停止
手順
mongod がレプリカセット内のプライマリである場合、このmongod インスタンスのシャットダウン プロセスには次の手順が含まれます。
レプリカセットの強制シャットダウン
最新のセカンダリがなく、プライマリをシャットダウンする場合は、次の 操作のように、mongosh shutdown引数を指定してforce コマンドを発行します。
db.adminCommand({shutdown : 1, force : true}) 
すぐに最新の状態になるセカンダリがない場合に、指定した秒数だけセカンダリをチェックし続けるには、timeoutSecs 引数を指定して shutdown を実行します。MongoDB は、どれもすぐに最新にならない場合、指定された秒数だけセカンダリをチェックし続けます。割り当てられた時間内にいずれかのセカンダリが追いついた場合、プライマリはシャットダウンします。どのセカンダリも追いつかなければ、シャットダウンしません。
次のコマンドは、timeoutSecs を 5 に設定して shutdown を実行します。
db.adminCommand({shutdown : 1, timeoutSecs : 5}) 
あるいは、db.shutdownServer() メソッドで timeoutSecs 引数を使用することもできます。
db.shutdownServer({timeoutSecs : 5})