rc.d脚本在/ run / daemons中查找我的二进制文件

时间:2012-08-03 13:53:32

标签: bash archlinux

编辑:我关注this example

尝试为mongod编写archlinux rc.d脚本。我把我的二进制文件放在/usr/bin中。这是我到目前为止所得到的:

#!/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

问题是当我sudo rc.d start mongod时,我收到以下错误:

:: Starting /usr/bin/mongod                                                                                   
[BUSY] /etc/rc.d/functions: line 203: /run/daemons//usr/bin/mongod: No such file or directory
                                                                                                              [DONE]

1 个答案:

答案 0 :(得分:1)

语法错误。

我在行上使用了$>而不是&>

[ -z "$PID" ] && $DAEMON $ARGS $> /dev/null