Ich versuche ein Signal an den Django-Entwicklungsserver zu senden, um die Eltern- und Kindprozesse zu beenden.Entsprechendes Signal, um den Django-Entwicklungsserver zu töten
$ python manage.py runserver
Validating models...
0 errors found
Django version 1.4.1, using settings 'myproject.settings'
Development server is running at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
$ ps axf
26077 pts/12 Ss 0:00 \_ -bash
4189 pts/12 S+ 0:00 | \_ python manage.py runserver
4194 pts/12 Sl+ 0:00 | \_ /myproject/.virtualenv/bin/python manage.py runserver
$ kill -s SIGINT 4189
$ ps axf
4194 pts/12 Sl 0:00 /sh/myproject/.virtualenv/bin/python manage.py runserver
Mein Verständnis ist, dass SIGINT sollte durch Drücken von Strg-C im Terminal emulieren, aber feststellen, dass SIGINT die Eltern beendet, 4189, aber nicht das Kind, 4194. Gleiches Verhalten für SIGKILL, SIGTERM, SIGSTOP. Die Verwendung von Strg-C vom Terminal tötet beide wie erwartet.
Gibt es eine Möglichkeit, die Eltern in einer Weise zu beenden, die auch das Kind tötet, ohne die PID des Kindes zu kennen?
"Gibt es eine Möglichkeit, das übergeordnete Element in a zu beenden Art und Weise, die auch das Kind tötet? " Ich hoffe, das Kind indirekt zu töten, indem ich nur den Elternteil töte. Ich versuche, den django dev Server mit der Runit-Suite zu überwachen, ohne --noreload zu benutzen. – Aaron
@Aaron, Diese Antwort funktionierte für mich, aber die akzeptierte Antwort nicht – Gab