岡野です。
>runserverをすると2つのプロセスが同時に立ち上がっているようです。
これはrunserverのautoreload(ソースコードを変更した際に再読込)の機能によるもので、正常です。
runserverコマンドのプロセスと、HTTPの待受をするサーバースレッドの2つになります。
$ ps f
25374 pts/5 Ss 0:00 /bin/bash
25447 pts/5 S+ 0:00 \_ python manage.py runserver
25448 pts/5 Sl+ 0:00 \_ /home/tokibito/tmp/venv/bin/python manage.py runserver
runserverコマンドに --noreload オプションを指定すると、再読込されずプロセスは1つになります。
>ctl+cで停止した後も、別のプロセスがバックグラウンドで動いてしまいます。
autoreloadの機能がサーバースレッドを終了できていなさそうです。
アプリケーションコード内で外部サーバーや各種外部サービスへ接続している場合、
通信が終わるまでプロセスが終了しないような挙動をするかもしれません。
同じ環境でシンプルなDjangoのプロジェクトを作成し、同様の動きになるかどうか、試してみてはいかがでしょうか。
2014年11月6日木曜日 9時40分40秒 UTC+9 shinriyo: