我的服务器上有大量的快速 cgi 脚本,当我们部署新脚本时,我们会运行,systemctl reload httpd
因为我们的某些脚本可能已经更改或底层数据可能已经更改。
我注意到,生成的快速 cgi 脚本并不总是被终止。这似乎是随机的。似乎生成了新进程,但旧进程仍在徘徊,并且 httpd 的进程超时或空闲超时设置不会导致这些进程被清除。
system restart httpd
确实会导致这些僵尸脚本被杀死,但是当我们在 httpd 后端上运行完全重启时,它会导致我们的 nginx 代理缓存中出现大量 502 错误。
我是否错误地认为重新加载在执行时应该终止所有活动的子进程?我是否应该创建某种后续进程来清除僵尸进程?
我们使用的是 apache 2.4.6 和 mod_fcgid。并且我们的脚本是 perl cgis。