Зарегистрируйте цветок в сервисе, чтобы запустить его как демон, но он не работает - PullRequest
0 голосов
/ 18 марта 2020

Я запускаю flower с помощью этой команды на удаленной машине (не на локальной)

sudo flower A proj --port=80 --broker=amqp://user:passwd@remotehost:5672//

И я хотел запустить ее в качестве фона, поэтому я создал файл flower в /etc/init.d/flower

это код, который я написал в цветочном файле

#!/bin/bash

### BEGIN INIT INFO
# Provides:          flower
# Required-Start:    $all
# Required-Stop:
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: flower
### END INIT INFO


NAME=flower
DESC="flower daemon"

export DJANGO_SETTINGS_MODULE="proj.settings.production"

ENV_PYTHON="/var/virtualenv/backgrounds/bin/python"

FLOWER_CHDIR="/path/to/project"

# How to call flower

FLOWERCTL="/var/virtualenv/backgrounds/bin/python /var/virtualenv/backgrounds/bin/celery worker --port=80 --broker=amqp://user:passwd@remotehost:5672//"
DAEMON=$FLOWERCTL

set -e
case "$1" in
  start)
        echo -n "Starting $DESC: "

        # Activate the virtual environment using venv command
        echo venv

        start-stop-daemon --start --pidfile /var/run/$NAME.pid \
            --chdir $FLOWER_CHDIR --chuid ubuntu \
            --user ubuntu --group root --background \
            --make-pidfile \
            --exec "$ENV_PYTHON" -- $FLOWERCTL
        echo "$NAME."
        ;;

  stop)
        echo -n "Stopping $DESC: "
        start-stop-daemon --stop --quiet --oknodo \
            --pidfile /var/run/$NAME.pid
        rm -f /var/run/$NAME.pid
        echo "$NAME."
        ;;
esac

exit 0

Однако, когда я запускаю команду

sudo /etc/init.d/flower start

Она выводит это сообщение на консоль

Starting flower daemon: venv flower.

Но цветок не заводится. Я также регистрирую это как службу, поэтому, когда я запускаю команду service --status-all, она показывает цветок, но статус ? Что мне делать?

...