zoukankan      html  css  js  c++  java
  • Mongodb rpm安装,自启动报错--got signal 1 (Hangup), will terminate after current cmd ends

    今天被问到 mongodb,centos 7.6的自启动,报错

    Jun 16 11:34:39 localhost rc.local: ERROR: child process failed, exited with error number 1
    Jun 16 11:34:39 localhost rc.local: To see additional information in this output, start without the "--fork" option.

    查看log日志

    2020-06-16T11:49:50.545+0800 I FTDC     [initandlisten] Initializing full-time diagnostic data capture with directory '/home/ceiec/mongodb/mongodb-3.6.9/data/diagnostic.data'
    2020-06-16T11:49:50.546+0800 I NETWORK  [initandlisten] waiting for connections on port 27017
    2020-06-16T11:50:16.684+0800 I CONTROL  [signalProcessingThread] got signal 1 (Hangup), will terminate after current cmd ends
    2020-06-16T11:50:16.684+0800 I NETWORK  [signalProcessingThread] shutdown: going to close listening sockets...

    发现是启动mongodb后,被某个进程给kill掉了

    一开始的启动脚本

    在/etc/init.d 下面一个脚本,比如auto_mongo.sh,

    /usr/bin/mongod --fork -f /etc/mongod.conf

    然后添加chkconfig,单独运行脚本是可以的,就是开机启动不行。

    检查了涉及到的文件和文件夹的权限

    chown -R mongod:mongod /home/data/mongodb
    chown -R mongod:mongod /usr/bin/mongo

    在启动的时候 也显式的加了--fork,还是报错

    于是新找了一台centos 7.4 ,进行rpm安装

    [root@iscsi opt]# rpm -ivh mongodb-org-*
    warning: mongodb-org-3.6.13-1.el7.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID 91fa4ad5: NOKEY
    Preparing...                          ################################# [100%]
    Updating / installing...
       1:mongodb-org-tools-3.6.13-1.el7   ################################# [ 20%]
       2:mongodb-org-shell-3.6.13-1.el7   ################################# [ 40%]
    error: %pre(mongodb-org-server-3.6.13-1.el7.x86_64) scriptlet failed, exit status 1
    error: mongodb-org-server-3.6.13-1.el7.x86_64: install failed
       3:mongodb-org-mongos-3.6.13-1.el7  ################################# [ 60%]
       4:mongodb-org-3.6.13-1.el7         ################################# [ 80%]
    
    [root@iscsi opt]# rpm -qa |grep mongodb
    mongodb-org-mongos-3.6.13-1.el7.x86_64
    mongodb-org-3.6.13-1.el7.x86_64
    mongodb-org-tools-3.6.13-1.el7.x86_64
    mongodb-org-shell-3.6.13-1.el7.x86_64
    [root@iscsi opt]# vim /etc/selinux/config 
    [root@iscsi opt]# setenforce 0
    [root@iscsi opt]# getenforce
    Permissive
    [root@iscsi opt]# yum localinstall  mongodb-org-*.rpm
    [root@iscsi opt]# rpm -ivh mongodb-org-server-3.6.13-1.el7.x86_64.rpm 
    warning: mongodb-org-server-3.6.13-1.el7.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID 91fa4ad5: NOKEY
    Preparing...                          ################################# [100%]
    error: %pre(mongodb-org-server-3.6.13-1.el7.x86_64) scriptlet failed, exit status 1
    error: mongodb-org-server-3.6.13-1.el7.x86_64: install failed
    --https://www.bbsmax.com/A/kjdw6X9A5N/
    使用root权限都不能编辑某个文件,很可能是使用chattr命令锁定该文件了。通过chattr命令修改属性能够提高系统的安全性,
    但是它并不适合所有的目录。chattr命令不能保护/、/dev、/tmp、/var目录。lsattr命令是显示chattr命令设置的文件属性。
    # chattr +i /etc/shadow ##使用chattr -i file加锁
    
    [root@iscsi opt]# lsattr /etc/shadow
    ----i----------- /etc/shadow
    [root@iscsi opt]# chattr -i /etc/shadow
    [root@iscsi opt]# groupdel mongod
    [root@iscsi opt]# rpm -ivh mongodb-org-server-3.6.13-1.el7.x86_64.rpm 
    warning: mongodb-org-server-3.6.13-1.el7.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID 91fa4ad5: NOKEY
    Preparing...                          ################################# [100%]
    Updating / installing...
       1:mongodb-org-server-3.6.13-1.el7  ################################# [100%]
    Created symlink from /etc/systemd/system/multi-user.target.wants/mongod.service to /usr/lib/systemd/system/mongod.service.
    [root@iscsi opt]# rpm -qa|grep mongod
    mongodb-org-mongos-3.6.13-1.el7.x86_64
    mongodb-org-3.6.13-1.el7.x86_64
    mongodb-org-shell-3.6.13-1.el7.x86_64
    mongodb-org-server-3.6.13-1.el7.x86_64
    mongodb-org-tools-3.6.13-1.el7.x86_64
    [root@iscsi opt]# whereis mongod
    mongod: /usr/bin/mongod /etc/mongod.conf /usr/share/man/man1/mongod.1
    cat >> /etc/hosts << EOF
    10.15.7.20 iscsi
    EOF
    
    echo never > /sys/kernel/mm/transparent_hugepage/enabled
    echo never > /sys/kernel/mm/transparent_hugepage/defrag
    
    cat >> /etc/rc.d/rc.local  << EOF
    #toku,mongodb3.6
    echo never > /sys/kernel/mm/transparent_hugepage/enabled
    echo never > /sys/kernel/mm/transparent_hugepage/defrag
    EOF
    
    # /usr/local/mongodb/bin/mongostat  --host=10.11.48.65 --port=27017
    # /usr/local/mongodb/bin/mongotop  --host=10.11.48.65 --port=27017
    
    cat >> /etc/profile  << EOF
    export PATH=/usr/bin:$PATH
    EOF
    source /etc/profile  
    
    cat >> /etc/profile << EOF
    export HISTTIMEFORMAT='%F %T '
    EOF
    
    mkdir -p /home/data/mongodb
    [root@iscsi opt]# id mongod
    uid=990(mongod) gid=985(mongod) groups=985(mongod)
    chown -R mongod:mongod /home/data/mongodb
    chown -R mongod:mongod /usr/bin/mongo
    cd /home/data/mongodb/
    mkdir data
    chown -R mongod:mongod /home/data/mongodb/
    
    [mongodb@localhost mongodb]$ vim mongodb.conf
    port=27017
    bind_ip=10.15.7.20
    logpath=/home/data/mongodb/mongodb01.log
    dbpath=/home/data/mongodb/data
    logappend=true
    pidfilepath=/home/data/mongodb/mongodb01.pid
    fork=true
    oplogSize=1024
    replSet=MyMongo
    
    /usr/bin/mongod -f /home/data/mongodb/mongodb.conf
    [root@iscsi mongodb]# vim /etc/rc.d/rc.local 
    [root@iscsi mongodb]# chmod +x /etc/rc.d/rc.local

    然后重启是ok的。

    -----------------

    在出问题的机器上进行调试

    在/etc/rc.d/rc.local加入strace命令,进行启动程序跟踪(在正常启动与不正常的日志中进行对比)

    strace -tt -s 10000 -f -o  mongo.txt /usr/bin/mongod --fork -f /etc/mongod.conf

     发现有涉及selinux;;这个时候,他们说他们安装的时候没有关闭selinux,于是他们关闭了selinux,然后自启动,就可以了~~~~

    请注意:我在另外安装rpm的时候,一开始就关闭selinux,所以没有第一时间想到这里,走了一定的弯路。。。。

  • 相关阅读:
    Java实现 LeetCode 792 自定义字符串排序(暴力)
    Java实现 LeetCode 792 自定义字符串排序(暴力)
    asp.net session对象的持久化
    Java实现 LeetCode 791 自定义字符串排序(桶排序)
    Java实现 LeetCode 791 自定义字符串排序(桶排序)
    Java实现 LeetCode 791 自定义字符串排序(桶排序)
    Java实现 LeetCode 790 多米诺和托米诺平铺(递推)
    Java实现 LeetCode 790 多米诺和托米诺平铺(递推)
    Java实现 LeetCode 790 多米诺和托米诺平铺(递推)
    小白也能看懂的约瑟夫环问题
  • 原文地址:https://www.cnblogs.com/yhq1314/p/13143383.html
Copyright © 2011-2022 走看看