【原创】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

You may also like...

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注