2017-01-12 3 views
0

저는 daemon.i로 셀러리를 실행하기 위해 우분투 16 및 systemd를 사용하고 있지만 단위 파일도 만들었지 만 셀러리를 서비스로 실행할 수는 없습니다. 이 오류가 왜 발생합니까?셀러리 데몬이 systemd를 사용하지 않고 실행 중입니다.

/etc/systemd/system/celery.service

[Unit] 
Description=Celery Service 
After=network.target 

[Service] 
Type=forking 
User=celery 
Group=celery 
EnvironmentFile=-/etc/default/celery 
WorkingDirectory=/srv/weaver/src 
ExecStart=/bin/sh -c '${CELERY_BIN} multi start ${CELERYD_NODES} \ 
    -A ${CELERY_APP} --pidfile=${CELERYD_PID_FILE} \ 
    --logfile=${CELERYD_LOG_FILE} --loglevel=${CELERYD_LOG_LEVEL} ${CELERYD_OPTS}' 
ExecStop=/bin/sh -c '${CELERY_BIN} multi stopwait ${CELERYD_NODES} \ 
    --pidfile=${CELERYD_PID_FILE}' 
ExecReload=/bin/sh -c '${CELERY_BIN} multi restart ${CELERYD_NODES} \ 
    -A ${CELERY_APP} --pidfile=${CELERYD_PID_FILE} \ 
    --logfile=${CELERYD_LOG_FILE} --loglevel=${CELERYD_LOG_LEVEL} ${CELERYD_OPTS}' 

[Install] 
WantedBy=multi-user.target 

파일

ENABLED="true" 
CELERYD_NODES="worker1" 
#CELERYD_NODES="worker1 worker2 worker3" 
CELERY_BIN="/usr/local/bin/celery" 
CELERY_APP="main:celery_app" 
CELERYD_CHDIR="/srv/weaver/src" 
CELERYD_OPTS=" --queue=weaver --time-limit=100000 --concurrency=2" 
CELERYD_LOG_FILE="/var/log/celery/%N.log" 
CELERYD_PID_FILE="/var/run/celery2/%N.pid" 
CELERYD_USER="celery" 
CELERYD_GROUP="celery" 
CELERY_CREATE_DIRS=1 
# Change Celery Beat 
CELERYBEAT_CHDIR="/srv/weaver/src" 
# Log files 
CELERYBEAT_LOG_FILE="/var/log/celery/celerybeat.log" 
# Celery Beat Log files 
CELERYBEAT_PID_FILE="/var/run/celery/celerybeat.pid" 
# Scheduler for celery 
CELERYBEAT_OPTS=" --pidfile=/var/run/celery/celerybeat.pid --sch 

OUTPUT 실행중인 서비스의은/etc/기본/셀러리에서

● celery.service - Celery Service 
    Loaded: loaded (/etc/systemd/system/celery.service; disabled; vendor preset: enabled) 
    Active: failed (Result: exit-code) since Thu 2017-01-12 17:12:32 IST; 2min 17s ago 
    Process: 18561 ExecStop=/bin/sh -c ${CELERY_BIN} multi stopwait ${CELERYD_NODES} --pidfile=${CELERYD_PID_FILE} (code=exited, status=0/SUCCESS) 
    Process: 18540 ExecStart=/bin/sh -c ${CELERY_BIN} multi start ${CELERYD_NODES} -A ${CELERY_APP} --pidfile=${CELERYD_PID_FILE} --logfile=${CELERYD_LOG_FIL 
Main PID: 18555 (code=exited, status=1/FAILURE) 

Jan 12 17:12:30 fb01 systemd[1]: Starting Celery Service... 
Jan 12 17:12:31 fb01 sh[18540]: celery multi v3.1.23 (Cipater) 
Jan 12 17:12:31 fb01 sh[18540]: > Starting nodes... 
Jan 12 17:12:31 fb01 sh[18540]:   > [email protected]: OK 
Jan 12 17:12:31 fb01 systemd[1]: Started Celery Service. 
Jan 12 17:12:32 fb01 systemd[1]: celery.service: Main process exited, code=exited, status=1/FAILURE 
Jan 12 17:12:32 fb01 sh[18561]: celery multi v3.1.23 (Cipater) 
Jan 12 17:12:32 fb01 sh[18561]: > [email protected]: DOWN 
Jan 12 17:12:32 fb01 systemd[1]: celery.service: Unit entered failed state. 
Jan 12 17:12:32 fb01 systemd[1]: celery.service: Failed with result 'exit-code'. 
+1

또한 셀러리 로그 파일의 내용을 포함하십시오, 경로가 설정 파일에 정의되어 당신이 제시 :'CELERYD_LOG_FILE = "/ var/log/celery/% N.log"' –

+0

@ running.t 로그는 비어 있습니다. 우분투 시스템은 서비스로 그것을 실행할 수 없습니다 thats 왜 errror – anekix

+1

그럼 누구든지 당신을 도울 수 있는지 모르겠습니다. 당신이 보여준 유일한 정보는 셀러리가 종료 코드 1로 종료된다는 것입니다. 어떻게 든 디버깅해야합니다. syslog 또는/var/log/messages에있는 정보 일 수 있습니까? 이 질문은 ** 다른 서비스에서 물어봐야합니다. http://askubuntu.com 또는 http://superuser.com은 프로그래밍과 관련이 없습니다. –

답변

0

방금이 정확한 문제를 해결했습니다. 내 문제는 구성 문제였습니다. 특히, 내 환경 파일에 CELERYD_LOG_LEVEL 을 설정하지 않았습니다. (귀하의 경우/etc/default/celeryd). 같은 실수를 한 것처럼 보입니다.

(나는 또한 내가 명령 줄에 셀러리를 실행하여 다음을 발견했다. 내가 해결하는 데 필요한 몇 가지 다른 구성 문제가 있었다.)

관련 문제