Error de sintaxis de ";; inesperado "en un script de inicio simple para Debian

Tengo este script de inicio para ejecutar uwsgi. Funciona, pero solo en el comando de inicio. Todos los otros comandos me dan este error:

/etc/init.d/uwsgi: 27: /etc/init.d/uwsgi: Syntax error: ";;" unexpected

Parece que los dos puntos deberían estar allí desde los tutoriales que estoy leyendo, y sin embargo, ¿me está diciendo que los elimine?

#!/bin/sh
### BEGIN INIT INFO
# Provides:          uwsgi
# Required-Start:    $local_fs $remote_fs $network
# Required-Stop:     $local_fs $remote_fs $network
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Description:       This script manages uWSGI.
### END INIT INFO

DAEMON=/var/www/app/venv/bin/uwsgi
PIDFILE=/var/run/uwsgi.pid
DAEMON_ARGS="--ini /var/www/app/conf/uwsgi/app.ini --pidfile /var/run/uwsgi.pid"

. /lib/init/vars.sh
. /lib/lsb/init-functions

case "$1" in
  start)
  echo "Starting"
  start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON --test > /dev/null \
    || return 1
  start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON -- \
    $DAEMON_ARGS 1> /dev/null 2>&1 \
    || return 2
  esac
  ;;
  stop)
  echo "Stopping"
  start-stop-daemon --stop --quiet --retry=QUIT/30/KILL/5 --pidfile $PIDFILE --name uwsgi
  RETVAL="$?"
  [ "$RETVAL" = 2 ] && return 2
  start-stop-daemon --stop --quiet --oknodo --retry=0/30/KILL/5 --exec $DAEMON
  [ "$?" = 2 ] && return 2
  rm -f $PIDFILE
  return "$RETVAL"
  esac
  ;;
  status)
  status_of_proc "$DAEMON" "uwsgi" && exit 0 || exit $?
  ;;
  reload)
  echo "Reloading"
  start-stop-daemon --stop --signal 1 --quiet --pidfile $PIDFILE --name uwsgi
  return 0
  ;;
  *)
  echo "Usage: /etc/init.d/uwsgi {start|stop|status|reload|force-reload}" >&2
  exit 3
  ;;
esac
exit 0

Respuestas a la pregunta(1)

Su respuesta a la pregunta