delhi09の勉強日記

技術トピック専用のブログです。自分用のメモ書きの投稿が多いです。あくまで「勉強日記」なので記事の内容は鵜呑みにしないでください。

Djangoのrunserverは「--noreload」を付けない場合プロセスが2つ立ち上がる

「python3 manage.py runserver 0.0.0.0:8000」で起動したサーバーのプロセスを確認したところ、プロセスが二つ存在することに気づいた。

bash-4.2# ps aux | grep "runserver" | grep -v "grep"
root        15  2.2  1.7 231188 36440 pts/1    S+   08:56   0:00 python3 manage.py runserver 0.0.0.0:8000
root        17  9.8  2.0 234996 41144 pts/1    Sl+  08:56   0:04 /usr/bin/python3 manage.py runserver 0.0.0.0:8000
bash-4.2#

疑問に思って調べたところ、stackoverflowに同じ質問があり、オートリロードが有効な場合(デフォルト)はauto-reloader用のプロセスがもう一つ立ち上がるのではないかとのことであった。

stackoverflow.com

公式ドキュメントには記載がなかったので、ちゃんと裏をとるならソースコードを読まなければならないが、確かに「--noreload」を付けて起動するとプロセスは1つになった。

bash-4.2# ps aux | grep "runserver" | grep -v "grep"
root        33  1.1  1.9 233756 39560 pts/1    S+   09:01   0:00 python3 manage.py runserver 0.0.0.0:8000 --noreload
bash-4.2#