将mongodb部署在服务器机子上时mongodb的实例应为后台服务进行的方式运行,而非前台进程,否则远程会话一关闭mongodb也跟着关闭了。
本文介绍mongodb后台服务进程开启和关闭的操作。

参阅链接:Manage mongod Processes


开启mongo db后台服务

使用--fork参数启动

1
2
3
4
mongod --fork --logpath <log_file_path> --dbpath <db_folder_path>
--fork 将mongod作为后台服务启动,并必须要跟随 --logpath 指定日志文件路径,如果该日志文件不存在会被自动创建
--dbpath 数据的存储目录

关闭mongo db服务

  • 使用shutdownServer()
1
2
3
# mongo // 从linux命令行进入mongod命令行
> use admin // 切换到管理员模式
> db.shutdownServer() // 关闭mongodb服务

具体操作见下图:
mongo.service.action

  • 使用 –shutdown
    也可以使用--shutdown进行关闭。但要指定--dbpath,因为一台机器上可以运行着多个mongodb实例,避免误杀。
1
mongod --shutdown --dbpath <db_folder_path>

--shutdown

  • 使用 kill 命令
    在Linux机器上也可以通过ps aux | grep mongo过滤出mongodb服务并找出对应的进程id后,使用kill命令进行关闭。
1
2
kill <mongod process ID>
kill -2 <mongod process ID>

但不要使用kill -9 (i.e. SIGKILL).
kill -9命令迫使进程在运行时突然终止,进程在结束后不能自我清理。可能导致系统资源无法正常释放,一般不推荐使用,除非其他办法都无效。

  • 前台进程可以使用 Ctrl+C
    当没有使用--fork参数时,为前台进程,可以直接使用Ctrl+C关闭,或者直接关闭远程会话。

走过的弯路

曾经误入歧途,使用yum install mongodb-serverservice mongod start,可以启动,但mongodb默认属于低版本,启动的mongodb配置文件需另外指定。


About Sodino