私は呼び出したスクリプトが終了した後に生きるdjangoプロセスを起動しようとしています。しかし、私はPIDが必要です。manage.pyはPIDを変更しますか?
だから私は、次のコードを書いた:
def runserver():
print("START PID: " + str(os.getpid()))
pid = os.fork()
if pid == 0:
#cmd = "/usr/bin/env python manage.py runserver 0.0.0.0:2869"
print("IN THE CHILD PID: " + str(os.getpid()))
os.execvp("python", ["", "manage.py", "runserver", "0.0.0.0:2869"])
else:
print("PARENT PID: " + str(os.getpid()))
print("CHILD PID: " + str(pid))
updatepid("runserver", pid)
これは私に次のように出力できます:
> ps aux | grep python | grep -v grep
sandro 13031 0.4 0.3 296080 23756 pts/2 Sl 22:14 0:01 /home/sandro/.virtualenvs/polling/bin/python2.7 manage.py runserver 0.0.0.0:2869
PID:私はライブプロセスをチェックするとき
START PID: 13019
PARENT PID: 13019
CHILD PID: 13020
IN THE CHILD PID: 13020
しかし、今をかわった!地球上で何が起こっているのですか?
私は知っています*私はこれを求めて後悔するつもりですが、なぜあなたのスクリプトからrunserverを始めていますか? –
ほとんど自分自身のための実験。ちょうど私のペットdjangoサイトのすべてのプロセスを追跡する迅速なハックスクリプトをまとめる。恐ろしいことではなく、何かの一部ではない);私が車輪を発明し終えたら、すでにあなたが提案できるようなものをやっているツールはありますか? – Sandro
私はいつもmod_wsgiの下でDjangoを実行するので、私が示唆できるものは実際にはありません。そこには多くのhttpd管理ツールがあります。 –