Próbuję wysłać sygnał do serwera deweloperskiego Django, aby zabić proces nadrzędny i podrzędny.Odpowiedni sygnał do zabicia serwera deweloperskiego django
$ 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
Rozumiem, że SIGINT powinny emulować naciśnięcie Ctrl-C w terminalu, ale zauważ, że SIGINT przerywa rodzica, 4189, ale nie dziecko, 4194. samo zachowanie dla SIGKILL, SIGTERM, SIGSTOP. Używanie Ctrl-C z terminala zabija obydwa zgodnie z oczekiwaniami.
Czy istnieje sposób na zakończenie rodzica w sposób, który zabija dziecko bez znajomości PID dziecka?
"Czy istnieje sposób na zakończenie rodzica w sposób, w jaki również zabija dziecko? " Mam nadzieję, że pośrednio zabiję dziecko, zabijając tylko rodzica. Próbuję uruchomić serwer django pod kontrolą pakietu runit bez użycia --noreload. – Aaron
@Aaron, Ta odpowiedź zadziałała, ale zaakceptowana odpowiedź nie – Gab