SEO対策ならSEO knowledge

TOPプログラムPython>Django

Djangoの開発サーバを数人で共有したい

ひとつの開発マシンで複数のDjango開発サーバーを動かそうとすると、ポートが被ってしまうことがあるため、開いているポートを探してそのポートで起動するためのシェルスクリプトです。

使用するポートは8000~8009です。iptablesなどのファイヤーウォールを使っているときは、予めそのポートにアクセスできるようにしてください。

以下の内容を/usr/bin/djrunに保存すると、manage.pyがあるディレクトリで

djrun

を実行すれば、開いているポートで開発サーバが起動します。

#!/bin/sh
# djangoの開発サーバを8000~8009のうち開いてるポートを探して、eth0のIPアドレスで起動するコマンド

if [ "$1" = "--help" -o "$1" = "-h" ]
then
    echo "Usage: djrun [ipaddress]"    # ヘルプを表示する
    exit
fi
    
if [ -z $1 ]
then
    ip=`/sbin/ifconfig eth0 | grep 'inet addr:' | sed -e "s/^.*inet addr:\([0-9.]\+\).*$/\1/"`    # 自分のIPを取得する
else
    ip=$1
fi

if [ -z $ip ]
then
    echo "Cannot retrieve IP address"
    exit
fi

netstat=`netstat -ant`    # netstatでTCPポートの状態を取得する

port=8000
while [ $port -le 8009 ]
do
    count=`echo $netstat | grep "$ip:$port " -c`    # ipaddress:port形式の文字列の出現回数を取得
    if [ $count -eq 0 ]
    then
        python manage.py runserver $ip:$port
        break
    fi
    
    port=`expr $port + 1`
done
 このエントリをはてなブックマークに登録 このエントリをlivedoorクリップに登録 Yahoo!ブックマークに登録 このエントリを del.icio.us に登録 Google Bookmarks に追加
[ 新規 | 編集 | 削除 | 凍結 ]    [ 新着 | 履歴 | ヘルプ ]

この記事に関連する求人

携帯サイト

携帯サイトはこちら

QRコード

http://it.kndb.jp/m

ページ上部へ