2016-08-27 99 views
1
#!/bin/bash 

NAME="trueguild"           # Name of the applica$ 
DJANGODIR=/webapps/trueguild_django/trueguild    # Django project dire$ 
SOCKFILE=/webapps/trueguild_django/run/gunicorn.sock  # we will communicte $ 
USER=trueguild           # the user to run as 

GROUP=webapps            # the group to run as 
NUM_WORKERS=3            # how many worker pro$ 
DJANGO_SETTINGS_MODULE=trueguild.settings     # which settings file$ 
DJANGO_WSGI_MODULE=trueguild.wsgi       # WSGI module name 

echo "Starting $NAME as $NAME" 

# Activate the virtual environment 
cd $DJANGODIR 
source ../bin/activate 
export DJANGO_SETTINGS_MODULE=$DJANGO_SETTINGS_MODULE 
export PYTHONPATH=$DJANGODIR:$PYTHONPATH 

# Create the run directory if it doesn't exist 
RUNDIR=$(dirname $SOCKFILE) 
test -d $RUNDIR || mkdir -p $RUNDIR 

# Start your Django Unicorn 
# Programs meant to be run under supervisor should not daemonize themselves (do$ 
exec ../bin/gunicorn ${DJANGO_WSGI_MODULE}:application \ 
    --name $NAME \ 
    --workers $NUM_WORKERS \ 
--user=$USER --group=$GROUP \ 
    --bind=unix:$SOCKFILE \ 
    --log-level=debug \ 
    --log-file=- 

我有以上gunicorn_start file.But當我開始使用supervisorctl那麼它拋出這個錯誤不能Exec的gunicorn_start EACCES

supervisor: couldn't exec /webapps/trueguild_django/bin/gunicorn_start: EACCES 
supervisor: child process was not spawned 

我與nginx的和gunicorn一起使用Django。

如何使用主管啓動服務器?

這裏是supervisor.d的conf文件

; supervisor config file 

[unix_http_server] 
file=/var/run/supervisor.sock ; (the path to the socket file) 
chmod=0700      ; sockef file mode (default 0700) 

[supervisord] 
logfile=/var/log/supervisor/supervisord.log ; (main log file;default $CWD/supervisord.log) 
pidfile=/var/run/supervisord.pid ; (supervisord pidfile;default supervisord.pid) 
childlogdir=/var/log/supervisor   ; ('AUTO' child log dir, default $TEMP) 

; the below section must remain in the config file for RPC 
; (supervisorctl/web interface) to work, additional interfaces may be 
; added by defining them in separate rpcinterface: sections 
[rpcinterface:supervisor] 
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface 

[supervisorctl] 
serverurl=unix:///var/run/supervisor.sock ; use a unix:// URL for a unix socket 

; The [include] section can just contain the "files" setting. This 
; setting can list multiple files (separated by whitespace or 
; newlines). It can also contain wildcards. The filenames are 
; interpreted as relative to this file. Included files *cannot* 
; include files themselves. 

[include] 
files = /etc/supervisor/conf.d/*.conf 

,這裏是conf.d目錄

[program:trueguild] 
command = /webapps/trueguild_django/bin/gunicorn_start     ; Command to start app 
user = trueguild               ; User to run as 
stdout_logfile = /webapps/trueguild_django/logs/gunicorn_supervisor.log ; Where to write log messages 
redirect_stderr = true            ; Save stderr in the same log 
environment=LANG=en_US.UTF-8,LC_ALL=en_US.UTF-8      ; Set UTF-8 as default encoding 
+0

執行gunicorn命令顯示你的'supervisord.conf'文件(僅應用部分) –

+0

我已經包含了文件@ TomaszJakubRup –

回答

2

內trueguild.conf文件在trueguild.conf文件

之後添加sh命令...

它會像

command =sh /webapps/trueguild_django/bin/gunicorn_start 

它會工作。

0

請確保您有權限下trueguild