मैं कॉलिंग स्क्रिप्ट के मरने के बाद एक डीजेंगो प्रक्रिया को जन्म देने की कोशिश कर रहा हूं। लेकिन मुझे इसकी पीआईडी चाहिए।क्या प्रबंधन.py अपना पीआईडी बदलता है?
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
पीआईडी:
START PID: 13019
PARENT PID: 13019
CHILD PID: 13020
IN THE CHILD PID: 13020
लेकिन अब जब मैं लाइव प्रक्रियाओं की जांच बदला हुआ! पृथ्वी पर क्या चल रहा है???
मुझे पता है * मुझे यह पूछने पर खेद है, लेकिन * क्यों * आप अपनी स्क्रिप्ट से रनरवर शुरू कर रहे हैं? –
ज्यादातर मेरे लिए एक प्रयोग। बस एक त्वरित हैकी स्क्रिप्ट एक साथ डालने जो मेरे पालतू django साइट के लिए सभी प्रक्रियाओं का ट्रैक रखता है। कोई चिंता नहीं, प्रोड या कुछ भी नहीं;) जब मैं पहिया का आविष्कार कर रहा हूं, तो क्या ऐसा कोई उपकरण है जो पहले से ही इस तरह की चीजें करता है जिसे आप सुझा सकते हैं? – Sandro
वास्तव में कुछ भी सुझाव नहीं दे सकता है, क्योंकि मैं हमेशा Django को mod_wsgi के तहत चलाता हूं। और वहाँ बहुत सारे httpd प्रबंधन उपकरण हैं। –