簡體   English   中英

Gunicorn和Django與Upstart和Nginx

[英]Gunicorn and Django with Upstart and Nginx

首先,我有許多Django實例設置並運行如下。

在每個項目中,我都有一個script.sh shell腳本,可以啟動gunicorn等:

 #!/bin/bash
  set -e
  LOGFILE=/var/log/gunicorn/app_name.log
  LOGDIR=$(dirname $LOGFILE)
  NUM_WORKERS=3
  # user/group to run as
  USER=root
  GROUP=root
  PORT=8060
  IP=127.0.0.1
  cd /var/www/webapps/app_name
  source ../bin/activate
  test -d $LOGDIR || mkdir -p $LOGDIR
  exec /var/www/webapps/bin/gunicorn_django -b $IP:$PORT -w $NUM_WORKERS \
    --user=$USER --group=$GROUP --log-level=debug --log-file=$LOGFILE 2>>$LOGFILE

當使用bash script.sh從命令行運行此腳本時,該站點運行正常,因此Nginx設置正確。

一旦我使用upstart與服務app_name啟動應用程序啟動,然后停止。 它甚至沒有寫入日志文件。

這是/etc/init/app_name.conf中app_name.conf文件:

description "Test Django instance"
start on runlevel [2345]
stop on runlevel [06]
respawn
respawn limit 10 5
exec /var/www/webapps/app_name/script.sh

那么這里的問題是什么? 導致從命令行運行,但執行低谷新手不會。 我不知道哪里看錯了什么?

好吧,我明白了。 如果有人碰到這樣的事情......

它基本上缺乏關於shell腳本的知識,這些知識阻礙了我。

在注釋掉腳本文件的每一行后,我發現了行的問題: source ../bin/activate以及之后的所有行。

問題是它前面有2個空格,現在我知道它需要一直保持對齊。 現在它有效。

這就是我弄清楚的方式:

tail -f /var/log/syslog
Jun 26 10:54:59 saturn7 init: app_name main process (3521) terminated with status 127

我發現狀態127基本上是一個找不到的命令。 所以我知道問題實際上是在腳本文件中。

但我不確定為什么bash ./script.sh會工作,而不是告訴我什么是錯的? 我需要閱讀有關schell腳本的信息..

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM