我尝试在Digital Ocean Ubuntu 16.04服务器上首次使用NGINIX,Gunicorn和Supervisor部署Django Web应用程序。我在看this linked tutorial。
配置Supervisor时遇到问题。运行此命令时...
sudo supervisorctl status automatedre
我得到这个错误…
automatedre FATAL Exited too quickly (process log may have details)
日志文件显示此...
supervisor: couldn't exec /home/automatedre/gunicorn_start: ENOENT
supervisor: child process was not spawned
supervisor: couldn't exec /home/automatedre/gunicorn_start: ENOENT
supervisor: child process was not spawned
/home/automatedre/gunicorn_start
#!/bin/bash
NAME="django_automatedre"
DIR=/home/automatedre/automatedre
USER=automatedre
GROUP=automatedre
WORKERS=3
BIND=unix:/home/automatedre/run/gunicorn.sock
DJANGO_SETTINGS_MODULE=automatedre.settings
DJANGO_WSGI_MODULE=automatedre.wsgi
LOG_LEVEL=error
cd $DIR
source ../venv/bin/activate
export DJANGO_SETTINGS_MODULE=$DJANGO_SETTINGS_MODULE
export PYTHONPATH=$DIR:$PYTHONPATH
exec ../venv/bin/gunicorn ${DJANGO_WSGI_MODULE}:application \
--name $NAME \
--workers $WORKERS \
--user=$USER \
--group=$GROUP \
--bind=$BIND \
--log-level=$LOG_LEVEL \
--log-file=-
/etc/supervisor/conf.d/automatedre.conf
[program:automatedre]
command=/home/automatedre/gunicorn_start
user=automatedre
autostart=true
autorestart=true
redirect_stderr=true
stdout_logfile=/home/automatedre/logs/gunicorn.log
我不知道该去哪里。我不相信这是一个文件权限问题,因为我以前改变了权限 gunicorn_start 与此...
chmod u+x gunicorn_start
你觉得我哪里做错了?
3条答案
按热度按时间n53p2ov01#
我之前从日志文件中删除了下面的文本,因为我认为它不相关......错误。
我最初在我的Windows机器上的Brackets文本编辑器中创建了**/home/automatedre/gunicorn_start和/etc/supervisor/conf.d/automatedre.conf**,这导致了这个问题。
在做了更多的挖掘之后,我了解到Windows/MS-DOS uses CR+LF to indicate end-of-lines and UNIX uses LF character to indicate line termination (EOL character)。
此差异导致每行末尾的^M,从而导致文件路径未找到错误。
使用nano从终端重新创建每个文件解决了这个问题。
vbkedwbf2#
要获得更多信息,您可以将
LOG_LEVEL=error
更改为LOG_LEVEL=debug
。jhiyze9q3#
如果有人遇到了同样的问题,并且已经验证了
directory
路径是正确的,请检查配置文件的行中是否有针对该程序的特定单元或规则的前导空格。错误:
对了