AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 836259
Accepted
Telen Stanley
Telen Stanley
Asked: 2017-03-05 03:19:07 +0800 CST2017-03-05 03:19:07 +0800 CST 2017-03-05 03:19:07 +0800 CST

在 Redhat 7 上创建 mongo db 启动 init.d 脚本时执行格式错误

  • 772

我已经按照将 mongod 添加为 linux 服务的链接进行操作。服务器重启后,mongod服务器没有重启。

/etc/rc.d/init.d/mongod 文件内容:

                #!/bin/bash
            #
            # mongodb     Startup script for the mongodb server
            #
            # chkconfig: - 64 36
            # description: MongoDB Database Server
            #
            # processname: mongodb
            #

            # Source function library
            . /etc/rc.d/init.d/functions

            if [ -f /etc/sysconfig/mongodb ]; then
                    . /etc/sysconfig/mongodb
            fi

            prog="mongod"
            mongod="/usr/bin/mongod"
            mongodb_user="myUserAdmin"
            RETVAL=0

            start() {
                    echo -n $"Starting $prog: "
                    #daemon $mongod "--fork --logpath /var/log/mongodb.log --logappend 2>&1 >>/var/log/mongodb.log"
                    daemon --user=$mongodb_user $mongod "--config /etc/mongodb.conf"
                    RETVAL=$?
                    echo
                    [ $RETVAL -eq 0 ] && touch /var/lock/subsys/$prog
                    return $RETVAL
            }

            stop() {
                    echo -n $"Stopping $prog: "
                    killproc $prog
                    RETVAL=$?
                    echo
                    [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$prog
                    return $RETVAL
            }
            reload() {
                    echo -n $"Reloading $prog: "
                    killproc $prog -HUP
                    RETVAL=$?
                    echo
                    return $RETVAL
            }

            case "$1" in
                    start)
                            start
                            ;;
                    stop)
                            stop
                            ;;
                    restart)
                            stop
                            start
                            ;;
                    condrestart)
                            if [ -f /var/lock/subsys/$prog ]; then
                                    stop
                                    start
                            fi
                            ;;
                    reload)
                            reload
                            ;;
                    status)
                            status $mongod
                            RETVAL=$?
                            ;;
                    *)
                            echo $"Usage: $0 {start|stop|restart|condrestart|reload|status}"
                            RETVAL=1
            esac

            exit $RETVAL

通过引用 /var/log/messages

显示的错误是

> Mar  4 09:04:44 redhat7 systemd: Starting SYSV: MongoDB Database Server...
Mar  4 09:04:44 redhat7 systemd: Failed at step EXEC spawning /etc/rc.d/init.d/mongod: Exec format error
Mar  4 09:04:44 redhat7 systemd: mongod.service: control process exited, code=exited status=203
Mar  4 09:04:44 redhat7 systemd: Failed to start SYSV: MongoDB Database Server.
Mar  4 09:04:44 redhat7 systemd: Unit mongod.service entered failed state.
Mar  4 09:04:44 redhat7 systemd: mongod.service failed.

请帮我。

linux redhat systemd mongodb
  • 1 1 个回答
  • 2402 Views

1 个回答

  • Voted
  1. Best Answer
    iwaseatenbyagrue
    2017-03-05T05:43:53+08:002017-03-05T05:43:53+08:00

    可能不是您想要的答案,但您可能会考虑稍微不同的方法。

    您的说明从 2013 年开始,并且与预系统化的 RedHat 相关。你有 RedHat 7,它(AFAIK)有 systemd,我建议你使用它,而不是使用 init 脚本。

    尽管我很惊讶您在安装 mongo 时没有放置合适的脚本,但我认为考虑将 mongo 自己的服务单元用于基于 RPM 的系统可能是有意义的(取自https://github.com/mongodb/ mongo/blob/master/rpm/mongod.service):

    [Unit]
    Description=High-performance, schema-free document-oriented database
    After=network.target
    Documentation=https://docs.mongodb.org/manual
    
    [Service]
    User=mongod
    Group=mongod
    Environment="OPTIONS=--quiet -f /etc/mongod.conf"
    ExecStart=/usr/bin/mongod $OPTIONS run
    ExecStartPre=/usr/bin/mkdir -p /var/run/mongodb
    ExecStartPre=/usr/bin/chown mongod:mongod /var/run/mongodb
    ExecStartPre=/usr/bin/chmod 0755 /var/run/mongodb
    PermissionsStartOnly=true
    PIDFile=/var/run/mongodb/mongod.pid
    # file size
    LimitFSIZE=infinity
    # cpu time
    LimitCPU=infinity
    # virtual memory size
    LimitAS=infinity
    # open files
    LimitNOFILE=64000
    # processes/threads
    LimitNPROC=64000
    # total threads (user+kernel)
    TasksMax=infinity
    TasksAccounting=false
    # Recommended limits for for mongod as specified in
    # http://docs.mongodb.org/manual/reference/ulimit/#recommended-settings
    
    [Install]
    WantedBy=multi-user.target
    

    您可能希望将其放入 /etc/systemd/system/mongod.service,并可能禁用您的 init 脚本。

    • 2

相关问题

  • 多操作系统环境的首选电子邮件客户端

  • 你最喜欢的 Linux 发行版是什么?[关闭]

  • 更改 PHP 的默认配置设置?

  • 保护新的 Ubuntu 服务器 [关闭]

  • (软)Ubuntu 7.10 上的 RAID 6,我应该迁移到 8.10 吗?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve