CentOS7下编写自定义服务实现MongoDB自动启动
这几天折腾Linux跟MongoDB,挫折不少,但是都一一解决。
其中最大的问题在于使用yum install安装的mongodb重启后无法启动,最后只好走手动安装的路线。
步骤纪录如下给通过搜索引擎找到这里的有缘人。
- 首先官网下载最新的mongodb tar压缩包,解压缩到服务器某个目录下,我这里使用的是/home/mongodb/bin目录。
- vi /etc/profile文件,在最后新建一行export PATH=/home/mongodb/bin:$PATH,这条命令保证了系统重启后依然可以直接调用mongoldb的程序。
- vi /home/mongodb/mongodb.conf,新建运行配置文件,具体内容见下面附录1。
- vi /usr/lib/systemd/system/mongodb.service,新建系统服务,以便系统自动启动mongodb服务,具体内容见附录2。
- systemctl enable mongodb.service,将刚才新建的mongodb服务设置为自动启动。
- firewall-cmd --permanent --add-port=27017/tcp,添加默认端口到防火墙允许端口列表里。
- firewall-cmd --reload,重启防火墙。
自此系统配置完毕,系统启动后将自动开启mongodb。
附录1
dbpath=/home/mongodb/datalogpath=/home/mongodb/logs/mongodb.log
logappend=true
fork=true
附录2
[Unit]Description=Mongodb service
After=network.target
[Service]
Type=forking
ExecStart=/home/mongodb/bin/mongod -f /home/mongodb/mongodb.conf
ExecStop=/home/mongodb/bin/mongod -f /home/mongodb/mongodb.conf --shutdown
[Install]
WantedBy=multi-user.target