linux下配置mongodb和redis开机自启

配置mongodb和redis开机自启

redis 开机自启设置

参考文章

redis配置文件redis.conf

操作方式

因为每次开机启动或者启动终端都要执行.bashrc 文件所以把启动命令加入到.bashrc 文件中当每次开机启动的时候或者启动终端的时候来判断redis 或者mongodb是否已经启动。未启动则执行启动命令

redis配置

Redis默认不是以守护进程的方式运行,可以通过该配置项修改,使用yes启用守护进程

所以修改/etc 下的 redis.conf命令如下

    cd ~
    cd /etc
    vim redis.conf

然后找到如下内容:

    daemonize no

修改为:

    daemonize yes

这样就可以作为后台进程来进行启动了

然后将redis启动命令添加到环境变量中
redis指定配置文件启动命令如下:

redis-server 配置文件路径

示例如下

    redis-server /etc/redis.conf 

将以上命令加入到.bashrc 文件中操作如下

    cd ~
    vim .bashrc 

然后把redis 指定配置文件启动的命令加入到.bashrc 文件中保存然后执行如下命令

    source .bashrc

自此完成redis开机自启功能

mongodb 开机自启设置

参考文章

mongodb 后台启动

因为mongodb同redis一样默认不是以守护进程启动的所以这里需要通过配置文件方式启动来使mongodb以守护进程方式启动

mongodb配置

  • 先创建数据目录:

        mkdir /data/mongo
    
  • 然后创建配置文件

        vi /data/mongo/mongodb.cnf
    

    文件内容:

        dbpath=/data/mongo/  # mongodb数据存放路径
    
        logpath=/data/mongo/mongo.log  # mongodb日志存放位置
        
        logappend=true
        
        fork=true  # 是否以后台方式运行
        
        port=27017 # 端口号
    
  • 将以上步骤完成后需要指定启动文件来启动mongodb命令如下:
    mongodb -f 配置文件路径

        mongodb -f /data/mongo/mongodb.cnf
    
  • 开机自启所以需要将mongodb指定配置文件启动的命令加入到.bashrc 文件中如下:

    count=`ps -ef | grep "mongod" |grep -v 'grep' | wc -l`
    if [ $count == 0 ]; then
      echo 'mongo is starting'
      mongod -f /data/mongo/mongodb.cnf;
    else
      echo 'mongo is running'
    fi    
    

    以上核心还是 mongod -f /data/mongo/mongodb.cnf 但是如果只在.bashrc 中只添加此句命令的话会每次开启终端都会执行,这样在已经启动mongo的情况下会看到终端报错说mongod已经启动,虽不影响使用,但是影响心情所以加了判断```count=`ps -ef | grep "mongod" |grep -v 'grep' | wc -l```` 用来判断mongod是否已经启动。若启动则 count不为0 即第二行的判断然后判断是否要执行相应的mongod启动命令。
    至此完成mongo 和redis开机自启的配置

  • .bashrc 文件中新添加的内容如下:

    redis-server /etc/redis.conf
    count=`ps -ef | grep "mongod" |grep -v 'grep' | wc -l`
    if [ $count == 0 ]; then
      echo 'mongo is starting'
      mongod -f /data/mongo/mongodb.cnf;
    else
      echo 'mongo is running'
    fi
    

注意事项

  • 以上内容中使用的路径可能与实际机器的路径不太一致,不能把代码复制粘贴即可,要根据实际路径把对应的内容替换掉
  • shell 编程中很注意空格问题,所以粘贴上文提到的.bashrc 中的代码时要注意里边的空格
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。