原創 mongod 程序的啟動 停止

2021-10-10 04:41:35 字數 2378 閱讀 2299

前言

1、概要

mongod 程序的啟動與停止雖然比較簡單,但一些與常見服務啟停不同的地方,也有一些小坑。請參考下文

2、相關環境

ubuntu 18.04.5

mongodb 3.6.3

正文

正文部分的操作示例均使用 mongodb 使用者。

1、啟動程序

啟動 mongod 程序可以指定配置檔案位置,也可以設定某些資料庫引數。

mongod --config /config/path/mongodb.conf
示例:

nohup mongod --setparameter failindexkeytoolong=false --config /etc/mongodb.conf >/dev/null 2>&1 &
2、停止程序

停止 mongod 程序有多種方法,下面展示兩種常用的方法。

(1) mongod –shutdown

這種方法是 mongodb 官方文件給出的,且是由 mongod 直接提供的功能,即使用 mongod –shutdown 的方式,不過這種方式也有要注意的地方,請看下文:

mongod --shutdown
$ mongod --shutdown

there doesn't seem to be a server running with dbpath: /data/db

所以更合理的方法是指定 mongodb 的配置檔案,如下示例:

$ ps -ef | grep mongo

mongodb      634       1  0 sep29 ?        02:07:41 /usr/bin/mongod --unixsocketprefix=/run/mongodb --config /etc/mongodb.conf

$ mongod --config /etc/mongodb.conf --shutdown

killing process with pid: 634

(2) kill process

使用 kill -2 pid 或者 kill -term pid 停止 mongod 程序,如下示例

$ ps -ef | grep mongod | grep -v grep | awk '' | xargs sudo kill -2
注:千萬不要使用 kill -9 去停止 mongod 程序!!!mongodb 官方也提到了這一點,這樣可能導致資料丟失,資料庫崩潰等不可預知的問題。

總結

如果你是使用 apt 安裝的 mongodb-server,那麼啟動、停止將更加簡單。下面操作示例均使用非 mongodb,非 root 的普通賬號進行。

1、啟動程序

service mongodb sart
示例:

$ service mongodb start 

==== authenticating for org.freedesktop.systemd1.manage-units ===

authentication is required to start 'mongodb.service'.

authenticating as: jiangzl,,, (jiangzl)

password:

==== authentication complete ===

2、停止程序

service mongodb stop
示例:

$ service mongodb stop 

==== authenticating for org.freedesktop.systemd1.manage-units ===

authentication is required to stop 'mongodb.service'.

authenticating as: jiangzl,,, (jiangzl)

password:

==== authentication complete ===

3、其他常用操作

service mongodb restart    # 重啟 mongodb 服務

tail -100f /var/log/mongodb/mongodb.log    # 檢視 mongodb 執行日誌

附錄

參考 mongodb 程序管理官方文件

Supervisor 無法停止及啟動程序

今天由於 變更,需要重啟服務,服務程序使用supervisor管理,執行指令 supervisorctl restart group 一直沒返回 檢視所重啟服務組的程序 supervisorctl status group 發現有乙個處於 stopping狀態,其他都是stoped 查詢程序狀態 p...

C 實現程序管理的啟動和停止例項

using system using system.collections.generic using system.componentmodel using system.data using system.dxxuaprawing using system.text using system.w...

mysql的啟動停止

mysql的啟動有很多方法,我們將來一一討論 一,mysqld mysqld是mysql的服務 mysqld這種方式啟動的時候會讀取my.cnf檔案中的 mysqld 和 server 組group 每乙個組都有來分割 一般的,我們通過這種方式手動的呼叫mysqld,如果不是出去除錯的目的,我們一般...