10

私は次のstart-stop-scriptを持っています:

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部分で何を間違えましたか?

4

1 に答える 1

10

実行するコマンドとして、コマンド名とコマンド引数を渡します。もちろん存在しない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

(コマンドとその引数の間の-に注意してください)

于 2013-03-18T15:09:57.153 に答える