aemonização de django de aipo

1

Estou tentando usar o aipo com o Django, e consegui configurá-los para que eu possa começar o aipo com

(virtualenv)$ celery -A dbbs worker -l info

e faz tarefas enviadas pelo servidor Django.

Agora eu estava indo para daemonizar aipo, mas falha aqui. Eu posso começar o serviço com

sudo /etc/init.d/celeryd start

, mas não executa tarefas do servidor. Seu status diz

sudo /etc/init.d/celeryd status
* celeryd.service - LSB: celery task worker daemon
   Loaded: loaded (/etc/init.d/celeryd; bad; vendor preset: enabled)
   Active: active (exited) since Thu 2017-03-02 13:29:39 MSK; 3s ago
     Docs: man:systemd-sysv-generator(8)
  Process: 7910 ExecStop=/etc/init.d/celeryd stop (code=exited, status=0/SUCCESS)
  Process: 7961 ExecStart=/etc/init.d/celeryd start (code=exited, status=0/SUCCESS)

Mar 02 13:29:39 77-voytekh-mysql systemd[1]: Starting LSB: celery task worker daemon...
Mar 02 13:29:39 77-voytekh-mysql celeryd[7961]: celery init v10.1.
Mar 02 13:29:39 77-voytekh-mysql celeryd[7961]: /etc/init.d/celeryd: 46: /etc/init.d/celeryd: [[: not found
Mar 02 13:29:39 77-voytekh-mysql celeryd[7961]: Using config script: /etc/default/celeryd
Mar 02 13:29:39 77-voytekh-mysql celeryd[7961]: celery daemon disabled - see /etc/default/celeryd
Mar 02 13:29:39 77-voytekh-mysql systemd[1]: Started LSB: celery task worker daemon.

e todas as tarefas solicitadas pelo servidor parecem ir para alguma fila, pois são executadas imediatamente se eu lançar o aipo manualmente com "aipo -A dbbs worker -l info". O servidor Django funciona em um virtualenv, e o aipo também é instalado dentro desse env.

Meu arquivo de configuração celeryd é como abaixo. Alguém pode dar uma dica do que está errado?

CELERYD_NODES="dbbs_worker"

CELERY_BIN="/home/voytekh/Env/bdds/bin/celery"

CELERY_APP="dbbs"
#CELERY_APP="proj.tasks:app"

CELERYD_CHDIR="/home/voytekh/dbbs/"

CELERYD_OPTS="--time-limit=300 --concurrency=8"
#CELERYD_OPTS="--time-limit=300 -c 8 -c:worker2 4 -c:worker3 2 -Ofair:worker1"

CELERYD_LOG_LEVEL="DEBUG"

CELERYD_LOG_FILE="/var/log/celery/%n%I.log"
CELERYD_PID_FILE="/var/run/celery/%n.pid"

CELERYD_USER="celery"
CELERYD_GROUP="celery"

update:

/etc/init.d/celeryd: 46: /etc/init.d/celeryd: [[: não encontrado - resolvido editando /etc/init.d/celeryd como mostrado link Então você precisa adicionar ENABLED = TRUE às configurações para dizer ao script para iniciar o daemon.

Ainda recebo um erro ao iniciar com o sudo /etc/init.d/celeryd start:

$ sudo /etc/init.d/celeryd status
* celeryd.service - LSB: celery task worker daemon
   Loaded: loaded (/etc/init.d/celeryd; bad; vendor preset: enabled)
   Active: failed (Result: exit-code) since Thu 2017-03-02 13:39:25 MSK; 4s ago
     Docs: man:systemd-sysv-generator(8)
  Process: 8265 ExecStop=/etc/init.d/celeryd stop (code=exited, status=0/SUCCESS)
  Process: 8632 ExecStart=/etc/init.d/celeryd start (code=exited, status=1/FAILURE)

Mar 02 13:39:25 77-voytekh-mysql systemd[1]: Starting LSB: celery task worker daemon...
Mar 02 13:39:25 77-voytekh-mysql celeryd[8632]: celery init v10.1.
Mar 02 13:39:25 77-voytekh-mysql celeryd[8632]: Using config script: /etc/default/celeryd
Mar 02 13:39:25 77-voytekh-mysql su[8651]: Successful su for celery by root
Mar 02 13:39:25 77-voytekh-mysql su[8651]: + ??? root:celery
Mar 02 13:39:25 77-voytekh-mysql su[8651]: pam_unix(su:session): session opened for user celery by (uid=0)
Mar 02 13:39:25 77-voytekh-mysql systemd[1]: celeryd.service: Control process exited, code=exited status=1
Mar 02 13:39:25 77-voytekh-mysql systemd[1]: Failed to start LSB: celery task worker daemon.
Mar 02 13:39:25 77-voytekh-mysql systemd[1]: celeryd.service: Unit entered failed state.
Mar 02 13:39:25 77-voytekh-mysql systemd[1]: celeryd.service: Failed with result 'exit-code'.
Warning: celeryd.service changed on disk. Run 'systemctl daemon-reload' to reload units.

update2: O log de inicialização detalhado mostra falha ao endereçar / bin / echo -e. Eu não tenho ideia do que isso significa até agora.

$ sh -x /etc/init.d/celeryd start
+ . /lib/lsb/init-functions
+ run-parts --lsbsysinit --list /lib/lsb/init-functions.d
+ [ -r /lib/lsb/init-functions.d/01-upstart-lsb ]
+ . /lib/lsb/init-functions.d/01-upstart-lsb
+ unset UPSTART_SESSION
+ _RC_SCRIPT=/etc/init.d/celeryd
+ [ -r /etc/init//etc/init.d/celeryd.conf ]
+ _UPSTART_JOB=celeryd
+ [ -r /etc/init/celeryd.conf ]
+ [ -r /lib/lsb/init-functions.d/20-left-info-blocks ]
+ . /lib/lsb/init-functions.d/20-left-info-blocks
+ [ -r /lib/lsb/init-functions.d/40-systemd ]
+ . /lib/lsb/init-functions.d/40-systemd
+ _use_systemctl=0
+ [ -d /run/systemd/system ]
+ prog=celeryd
+ service=celeryd.service
+ systemctl -p LoadState show celeryd.service
+ state=LoadState=loaded
+ [ LoadState=loaded = LoadState=masked ]
+ [ 1642 -ne 1 ]
+ [ -z  ]
+ [ -z  ]
+ readlink -f /etc/init.d/celeryd
+ _use_systemctl=1
+ systemctl -p CanReload show celeryd.service
+ [ CanReload=no = CanReload=no ]
+ [ start = reload ]
+ [ 1 = 1 ]
+ set +e
+ set +u
+ [ xstart = xstart -o xstart = xstop -o xstart = xrestart -o xstart = xreload -o xstart = xforce-reload -o xstart = xstatus ]
+ systemctl_redirect /etc/init.d/celeryd start
+ local s
+ local rc
+ local prog=celeryd
+ local command=start
+ s=Starting celeryd (via systemctl)
+ service=celeryd.service
+ systemctl is-system-running
+ OUT=degraded
+ [ degraded != degraded ]
+ [ start = status ]
+ log_daemon_msg Starting celeryd (via systemctl) celeryd.service
+ [ -z Starting celeryd (via systemctl) ]
+ log_daemon_msg_pre Starting celeryd (via systemctl) celeryd.service
+ log_use_fancy_output
+ TPUT=/usr/bin/tput
+ EXPR=/usr/bin/expr
+ [ -t 1 ]
+ [ xxterm-256color != x ]
+ [ xxterm-256color != xdumb ]
+ [ -x /usr/bin/tput ]
+ [ -x /usr/bin/expr ]
+ /usr/bin/tput hpa 60
+ /usr/bin/tput setaf 1
+ [ -z ]
+ FANCYTTY=1
+ true
+ echo -n [....] 
[....] + [ -z celeryd.service ]
+ echo -n Starting celeryd (via systemctl): celeryd.service
Starting celeryd (via systemctl): celeryd.service+ log_daemon_msg_post Starting celeryd (via systemctl) celeryd.service
+ :
+ /bin/systemctl --no-pager start celeryd.service
==== AUTHENTICATING FOR org.freedesktop.systemd1.manage-units ===
Authentication is required to start 'celeryd.service'.
Multiple identities can be used for authentication:
 1.  miv,,, (miv)
 2.  voytekh
Choose identity to authenticate as (1-2): 2
Password: 
==== AUTHENTICATION COMPLETE ===
Warning: celeryd.service changed on disk. Run 'systemctl daemon-reload' to reload units.
Job for celeryd.service failed because the control process exited with error code. See "systemctl status celeryd.service" and "journalctl -xe" for details.
+ rc=1
+ [ start = status ]
+ log_end_msg 1
+ [ -z 1 ]
+ local retval
+ retval=1
+ log_end_msg_pre 1
+ log_use_fancy_output
+ TPUT=/usr/bin/tput
+ EXPR=/usr/bin/expr
+ [ -t 1 ]
+ [ xxterm-256color != x ]
+ [ xxterm-256color != xdumb ]
+ [ -x /usr/bin/tput ]
+ [ -x /usr/bin/expr ]
+ /usr/bin/tput hpa 60
+ /usr/bin/tput setaf 1
+ [ -z 1 ]
+ true
+ true
+ /usr/bin/tput setaf 1
+ RED=
+ /usr/bin/tput setaf 2
+ GREEN=
+ /usr/bin/tput setaf 3
+ YELLOW=
+ /usr/bin/tput op
+ NORMAL=
+ /usr/bin/tput civis
+ /usr/bin/tput sc
+ /usr/bin/tput hpa 0
+ [ 1 -eq 0 ]
+ [ 1 -eq 255 ]
+ /bin/echo -ne [FAIL
[FAIL+ /usr/bin/tput rc
+ /usr/bin/tput cnorm
+ log_use_fancy_output
+ TPUT=/usr/bin/tput
+ EXPR=/usr/bin/expr
+ [ -t 1 ]
+ [ xxterm-256color != x ]
+ [ xxterm-256color != xdumb ]
+ [ -x /usr/bin/tput ]
+ [ -x /usr/bin/expr ]
+ /usr/bin/tput hpa 60
+ /usr/bin/tput setaf 1
+ [ -z 1 ]
+ true
+ true
+ /usr/bin/tput setaf 1
+ RED=
+ /usr/bin/tput setaf 3
+ YELLOW=
+ /usr/bin/tput op
+ NORMAL=
+ [ 1 -eq 0 ]
+ [ 1 -eq 255 ]
+ /bin/echo -e  failed!
 failed!
+ log_end_msg_post 1
+ :
+ return 1
+ return 1
+ exit 1
    
por Vémundr 02.03.2017 / 11:17

1 resposta

0

Eu tive um problema de aparência muito semelhante, que acabou sendo uma permissão de execução no meu diretório de alterações.

Por isso, no meu caso, algo como:

sudo chmod o+x /home/voytekh/dbbs/

funcionou.

Observação: não é a melhor maneira de ativar a permissão necessária, mas isso não é pertinente a essa resposta.

    
por ajostergaard 03.10.2018 / 17:05