主管進程以「退出狀態 1」退出;沒有預料到’

主管進程以「退出狀態 1」退出;沒有預料到’

我試圖在主管中運行 Gunicorn_django 進程,但它總是立即退出,並給出以下錯誤:

INFO exited: my_app (exit status 1; not expected)
INFO received SIGCLD indicating a child quit
INFO gave up: my_app entered FATAL state, too many start retries too quickly

我的伺服器腳本如下所示:

#!/bin/bash
set -e
LOGFILE=/var/log/gunicorn/my_app.log
LOGDIR=$(dirname $LOGFILE)
NUM_WORKERS=3
USER=my-www-user
GROUP=my-www-user
cd /home/my-www-user/my_app
source /home/my-www-user/.virtualenvs/my_app/bin/activate
test -d $LOGDIR || mkdir -p $LOGDIR
gunicorn_django -w $NUM_WORKERS --debug \
 --user=$USER --group=$GROUP \
 --log-level=debug --log-file=$LOGFILE 2>>$LOGFILE\
 --pythonpath=my_app --settings=settings.active \
 my_app.wsgi:application

我的主管配置如下所示:

[program:my_app]
directory=/home/my-www-user/my_app/
user=my-www-user
command=/home/my-www-user/my_app/server.sh
stdout_logfile=/var/log/supervisor/my_app.log
stderr_logfile=/var/log/supervisor/my_app-error.log
autostart=true
autorestart=true

當我su進入my-www-user帳戶時,伺服器正常啟動。當我這樣做時,sudo supervisorctl start my_app它只是掛起,直到我執行 CTRL-c,然後我在supervisord.log 檔案中找到上述錯誤。

有人知道我缺少什麼嗎?

答案1

我似乎找到了解決方案。我不能讓主管以非特權身分執行我的伺服器腳本,my-www-user因為它必須寫入需要更多存取權限的日誌檔案等。所以解決方案是以root身份運行伺服器並讓gunicorn_django生成工作進程my-www-user

[program:my_app]
user=root
; rest of config follows

答案2

我嘗試運行 ‍ 時遇到此錯誤Celery,並且遇到了完全相反的問題。

我將用戶從 更改rootwww-data並解決了這個問題。

答案3

就我而言,遇到同樣的錯誤,我對其進行了調試,直到我發現:

磁碟已滿我增加了磁碟空間來解決這個問題。

(愚蠢的錯誤,很容易修復 - 也許在這裡閱讀這篇文章可以幫助某人不浪費時間)

也鏈接此問題以獲取其他選項:

相關內容