2013-03-18 56 views
9

我有以下啓動 - 停止腳本:「啓動 - 停止守護程序:無法STAT」

NAME="examplestartstop" 
PATH="/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/opt/node/bin" 
LOGFILE="/var/log/$NAME/start-stop-daemon.log" 
APP_DIR="/usr/bin" 
APP_BIN="tail -250f /var/log/apache2/error.log" 
USER="minecraft" 
GROUP="minecraft" 

# Include functions 
set -e 
. /lib/lsb/init-functions 

start() { 
    echo "Starting '$NAME'... " 
    start-stop-daemon --start --chuid "$USER:$GROUP" --background --make-pidfile --pidfile /var/run/$NAME.pid --exec "$APP_DIR/$APP_BIN" $LOGFILE || true 
    echo "done" 
} 

當我嘗試運行該腳本,我得到下面的輸出:

$ ./test start 
Starting 'examplestartstop'... 
start-stop-daemon: unable to stat /usr/bin/tail -250f /var/log/apache2/error.log (No such file or directory) 
done 

我是怎麼做錯的$APP_DIR/$APP_BIN一部分?

回答

9

你傳入命令名命令行參數來執行命令。 start-stop-daemon查找名爲/usr/bin/tail -250f /var/log/apache2/error.log命令不存在,當然。相反,你要調用類似(不重要的部分排除在外):

APP_DIR="/usr/bin" 
APP_BIN="tail" 
APP_ARGS="-250f /var/log/apache2/error.log" 
start-stop-daemon --start --exec "$APP_DIR/$APP_BIN" -- $APP_ARGS 

(注意-的命令及其參數之間)

+1

當我這樣做我得到一個錯誤 啓停-daemon:無法識別的選項 '--- 250F' – 2014-02-04 11:40:44

+1

你錯過'--'和'$ APP_ARGS'之間的空間?並請爲您的問題開始一個新問題。 – scai 2014-02-04 11:49:11