关于mongodb服务自动停止问题

昨天发现系统宕机了,查了下原因是mongodb服务停了,看了下日志:
2017-10-18T18:09:59.181+0800 I CONTROL  [signalProcessingThread] got signal 1 (Hangup), will terminate after current cmd ends
2017-10-18T18:09:59.181+0800 I FTDC     [signalProcessingThread] Shutting down full-time diagnostic data capture
2017-10-18T18:09:59.225+0800 I CONTROL  [signalProcessingThread] now exiting
2017-10-18T18:09:59.226+0800 I NETWORK  [signalProcessingThread] shutdown: going to close listening sockets...
2017-10-18T18:09:59.226+0800 I NETWORK  [signalProcessingThread] closing listening socket: 6
2017-10-18T18:09:59.226+0800 I NETWORK  [signalProcessingThread] closing listening socket: 7
2017-10-18T18:09:59.226+0800 I NETWORK  [signalProcessingThread] removing socket file: /tmp/mongodb-27017.sock
2017-10-18T18:09:59.226+0800 I NETWORK  [signalProcessingThread] shutdown: going to flush diaglog...
2017-10-18T18:09:59.226+0800 I NETWORK  [signalProcessingThread] shutdown: going to close sockets...
2017-10-18T18:09:59.226+0800 I STORAGE  [signalProcessingThread] WiredTigerKVEngine shutting down
2017-10-18T18:09:59.226+0800 I NETWORK  [conn14] end connection 127.0.0.1:37191 (3 connections now open)
2017-10-18T18:09:59.227+0800 I NETWORK  [conn13] end connection 127.0.0.1:37190 (3 connections now open)
2017-10-18T18:09:59.227+0800 I NETWORK  [conn12] end connection 127.0.0.1:37189 (3 connections now open)
2017-10-18T18:09:59.227+0800 I NETWORK  [conn11] end connection 127.0.0.1:37188 (3 connections now open)
2017-10-18T18:09:59.258+0800 I STORAGE  [signalProcessingThread] shutdown: removing fs lock...
2017-10-18T18:09:59.258+0800 I CONTROL  [signalProcessingThread] dbexit:  rc: 0

重新起mongodb的服务(命令:nohup /home/mongodb-linux-x86_64-rhel62-3.2.3/bin/mongod -dbpath /home/mongodb &),系统又重新正常运行了。关闭Xshell之后系统又宕了。

查了下资料,原因是直接关闭Xshell窗口之后,linux认为是异常退出,这个shell进程会收到SIGNUP信号,然后给它所有的子进程发送SIGHUP信号。

但是在mongodb启动命令中加-fork参数,会自动将其挂到init进程(pid为1)下启动,如果不加的话ppid(父进程id)就是当前的shell进程,所以加上–fork问题就可以解决了。
1.启动命令:/home/mongodb-linux-x86_64-rhel62-3.2.3/bin/mongod --dbpath /home/mongodb --logpath=/home/mongodb/rs2.1.log --fork
(命令参考:./mongod -dbpath=/usr/local/mongodb/data -logpath=/usr/local/mongodb/mongodb.log -logappend -port=27017 -fork)

2.通过配置文件启动.mongodb.conf

dbpath=/usr/local/mongodb/data
logpath=/usr/local/mongodb/mongodb.log
port=27017
bind_ip=0.0.0.0 //开启远程访问,注意做好权限配置
logappend=true 
fork=true

./mongod --config /usr/local/mongodb/etc/mongodb.conf

参考:http://blog.csdn.net/shawyeok/article/details/46486683

  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要关闭MongoDB服务,可以使用以下命令: 1. 停止MongoDB服务: sudo service mongod stop 2. 关闭MongoDB服务: sudo service mongod stop 3. 停止MongoDB进程: sudo killall mongod 4. 关闭MongoDB进程: sudo killall mongod 以上命令可以根据需要选择使用。 ### 回答2: 要关闭MongoDB服务,可以使用以下Linux命令: 1. 首先,使用以下命令查看正在运行的MongoDB服务进程: ``` ps -ef | grep mongod ``` 2. 根据第一步中的输出,找到mongod进程的Process ID(PID)。然后,使用以下命令终止该进程: ``` kill <PID> ``` 例如,如果PID是12345,则使用以下命令终止MongoDB服务: ``` kill 12345 ``` 3. 另一种方式是使用systemctl命令关闭MongoDB服务。使用以下命令停止MongoDB服务: ``` sudo systemctl stop mongod ``` 4. 如果MongoDB是通过安装包管理器(如apt或yum)安装的,则可以使用以下命令停止MongoDB服务: ``` sudo service mongodb stop ``` 或 ``` sudo systemctl stop mongodb ``` 以上命令中的sudo用于获取管理员权限,确保您具有足够的权限来停止MongoDB服务。 关闭MongoDB服务后,您可以使用以下命令来验证服务是否已成功停止: ``` ps -ef | grep mongod ``` 如果没有任何输出,则表示MongoDB服务已成功关闭。 ### 回答3: 要关闭MongoDB服务,可以使用以下Linux命令: 1. 首先,打开终端窗口。 2. 输入以下命令以停止MongoDB服务: ``` sudo systemctl stop mongod ``` 这将发送一个停止信号给MongoDB进程,并将其关闭。 3. 输入以下命令来禁用MongoDB服务: ``` sudo systemctl disable mongod ``` 这将禁止MongoDB在系统启动时自动启动。 4. 最后,输入以下命令以确认MongoDB服务已经关闭: ``` sudo systemctl status mongod ``` 如果服务状态显示为"inactive",则表示MongoDB已成功关闭。 总结起来,要关闭MongoDB服务,你需要使用以上的几个Linux命令:停止服务、禁用服务以及确认服务状态。请确保在执行这些命令之前具有适当的权限。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值