親プロセスと子プロセスを強制終了するために、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
私の理解では、SIGINT は端末で Ctrl-C を押すことをエミュレートする必要がありますが、SIGINT は親の 4189 を終了させますが、子の 4194 は終了させないことに注意してください。SIGKILL、SIGTERM、SIGSTOP についても同じ動作です。端末から Ctrl-C を使用すると、期待どおり両方が強制終了されます。
子の PID を知らなくても子を殺す方法で親を終了する方法はありますか?