【原创】mongod 进程的启动、停止

前言

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 数据库默认在 /data/db 目录,如果不在此目录,直接运行 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 '{print $2}' | 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 进程管理官方文档

https://docs.mongodb.com/manual/tutorial/manage-mongodb-processes/index.html