环境:
我有一个 python 服务器,它分成 3 个孩子。
对于家长:
- SIGTERM 应该杀死所有孩子,而 SIGHUP 应该记录并存在
对于孩子:
- SIGTERM 和 SIGHUP 都映射到 SIG_DFL
问题:
当我通过命令行启动脚本python <script.py>
并将 SIGHUP 发送给父级kill -1 <pid-of-parent>
时,它表现良好。只有在完成 I/O 后,父进程才会退出,而忙碌的子进程才会退出。
但是,如果使用 systemd 脚本启动相同的脚本,当我向父级发送 SIGHUP 时,仍然忙碌的子级会收到一个 SIGTERM 并导致 I/O 中断。
对此有任何解释/解决方案吗?是不是配置错误?