前言
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,如果不是出去除錯的目的,我們一般...