首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >rc.d start不终止吗?

rc.d start不终止吗?
EN

Stack Overflow用户
提问于 2012-08-03 22:04:44
回答 1查看 292关注 0票数 1

因此,我为mongod守护进程(遵循an example)编写了Arch Linux rc.d脚本,但当我这样做时:

代码语言:javascript
复制
sudo rc.d start mongod

它只是卡住了:

代码语言:javascript
复制
:: Starting /usr/bin/mongod          [BUSY]

并且永远不会转换到“完成”阶段。有什么建议吗?

下面是我的脚本:

代码语言:javascript
复制
#!/bin/bash

# import predefined functions
. /etc/rc.conf
. /etc/rc.d/functions

# Point to the binary
DAEMON=/usr/bin/mongod

# Get the ARGS from the conf
. /etc/conf.d/crond

# Function to get the process id
PID=$(get_pid $DAEMON)

case "$1" in
   start)
    stat_busy "Starting $DAEMON"
    # Check the PID exists - and if it does (returns 0) - do no run
    [ -z "$PID" ] && $DAEMON $ARGS &> /dev/null
    if [ $? = 0 ]; then
        add_daemon $DAEMON
        stat_done
    else
        stat_fail
        exit 1
    fi
    ;;
   stop)
        stat_busy "Stopping $DAEMON"
    kill -HUP $PID &>/dev/null

    rm_daemon $DAEMON
    stat_done
    ;;
   restart)
        $0 stop
    sleep 1
    $0 start
    ;;
    *)
        echo "usage: $0 {start|stop|restart}"
esac

我看过apache是如何做到这一点的,但我不知道他们做的是什么不同。下面是他们的一段httpd脚本:

代码语言:javascript
复制
case "$1" in
  start)
    stat_busy "Starting Apache Web Server"
    [ ! -d /var/run/httpd ] && install -d /var/run/httpd
    if $APACHECTL start >/dev/null ; then
      add_daemon $daemon_name
      stat_done
    else
      stat_fail
      exit 1
    fi
    ;;
EN

回答 1

Stack Overflow用户

发布于 2012-08-05 08:23:06

首先,您正在传递一个从未实际定义过的$ARGS变量。您可能希望传递一些配置,或者使用-f或-- mongodb.conf file选项传递配置的位置,以通知守护进程您的数据库、日志文件、IP绑定等的位置。

Mongod默认值假设您的数据库位置是/data/db/。如果该位置不存在,或者守护进程没有访问该位置的权限,则init脚本将失败。

您可能还应该使用您自己或root以外的用户帐户运行该守护进程(默认的pacman包创建了一个名为mongodb的用户),并授予该用户对数据路径和日志文件的读/写访问权限。

代码语言:javascript
复制
[ -z "$PID" ] && /bin/su mongodb -c "/usr/bin/mongod --config /etc/mongodb.conf --fork" > /dev/null

我建议参考Arch Community package中提供的mongodb init script,并将其与您在这里拥有的进行比较。或者,使用pacman安装MongoDB,这将为您设置所有这些设置。

如果其他方法都失败了,在If和else代码块中添加一些'echo‘命令,以准确跟踪init脚本挂起的位置,检查mongodb的日志,并向我们报告。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11797310

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档