【问题标题】:"start-stop-daemon: unable to stat"“启动-停止-守护进程:无法统计”
【发布时间】:2013-03-06 23:26:38
【问题描述】:

我有以下启动-停止脚本:

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 部分做错了什么?

【问题讨论】:

    标签: linux bash debian start-stop-daemon


    【解决方案1】:

    您正在传递命令名称​​和命令参数作为要执行的命令。 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
    

    (注意命令及其参数之间的 --

    【讨论】:

    • 当我这样做时,我得到一个错误 start-stop-daemon: unrecognized option '---250f'
    • 您是否错过了--$APP_ARGS 之间的空格?请针对您的问题提出一个新问题。