环境:
我有一个python服务器,可以分成3个孩子。
对于父母:
对于孩子:
问题:
当我通过命令行python <script.py>
启动脚本,并将SIGHUP发送给父kill -1 <pid-of-parent>
时,它表现良好。父母退出,忙碌的孩子只有在完成I / O后退出。
但是如果使用systemd脚本启动相同的脚本,当我将SIGHUP发送给父级时,仍然忙的子级会收到SIGTERM并导致I / O中断。
对此有何解释/解决方案?它有些误配置吗?
答案 0 :(得分:0)
好像您需要将KillMode
系统服务设置为process
。
KillMode ...指定如何杀死此单位的进程。 ...如果设置为control-group,则该单元的控制组中的所有剩余进程将在单元停止时被终止...如果设置为进程,则只有主进程本身被终止...默认为control-group < / p>
更多信息:Flask-Mail
如果以这种方式生成进程,另一种方法是在creationflags
调用中将subprocess.CREATE_NEW_PROCESS_GROUP
设置为subprocess.Popen
。