Невозможно правильно запустить aftpd через init.d - PullRequest
0 голосов
/ 05 апреля 2019

Я пытаюсь запустить aftpd на плате Debian 8.

Я установил aftpd пакет, который автоматически создал следующий /etc/init.d/aftpd стартовый скрипт:

#! /bin/sh
#
# This is an init script for openembedded
# Copy it to /etc/init.d/atftpd and type
# > update-rc.d atftpd defaults 60
#


test -f /usr/sbin/atftpd || exit 0

test -d /srv/tftp || mkdir -p /srv/tftp

case "$1" in
  start)
    echo -n "Starting tftp daemon: atftpd"
    start-stop-daemon --start --quiet --exec /usr/sbin/atftpd --daemon --port 69 
    echo "."
    ;;
  stop)
    echo -n "Stopping tftp daemon: atftpd"
    start-stop-daemon --stop --quiet --exec /usr/sbin/atftpd
    echo "."
    ;;
  reload|force-reload)
    start-stop-daemon --stop --quiet --signal 1 --exec /usr/sbin/atftpd
    ;;
  restart)
    $0 stop
    sleep 1
        $0 start
    ;;
  *)
    echo "Usage: /etc/init.d/atftpd {start|stop|reload|restart|force-reload}"
    exit 1
esac

exit 0

Но когда машина запускается, я получаю следующее сообщение об ошибке:

Starting tftp daemon: atftpdstart-stop-daemon: unrecognized option '--daemon'
BusyBox v1.24.1 (2018-11-21 22:38:19 CET) multi-call binary.

Usage: start-stop-daemon [OPTIONS] [-S|-K] ... [-- ARGS...]
.

кажется, что start-stop-daemon принимает за него --daemon.

Почему?

1 Ответ

0 голосов
/ 08 апреля 2019

Вы должны использовать -- для разделения аргументов для исполняемого файла. Цитирование справочной страницы для start-stop-daemon :

Любые аргументы, заданные после - в командной строке, передаются неизменяемой в запускаемую программу.

Аргументы передаются "как обычно". Поскольку после /usr/sbin/atftpd есть пробел, остальное передается start-stop-daemon стандартным способом.

...