我在 mod_perl 下运行了这个项目,显示了主机上的一些信息。此页面上有一个带有下拉菜单的文本框,允许用户 ping/nslookup/traceroute 主机。输出显示在文本框中,如tail -f
.
它在 CGI 下工作得很好。当用户请求 ping 时,它会对服务器进行 AJAX 调用,实际上它会在服务器上启动 ping,并将输出发送到临时文件。然后后续的 ajax 调用将“跟踪”文件,以便更新输出,直到 ping 完成。作业完成后,临时文件将被删除。
但是,在 mod_perl 下,无论我做什么,我都可以阻止它创建僵尸进程。我已经尝试了一切,双叉,使用IPC::Run
等。最后,在 mod_perl 下不鼓励系统调用。
所以我的问题是,也许有更好的方法来做到这一点?是否有 CPAN 模块可用于创建可在 mod_perl 下工作的命令行作业和拖尾输出?我只是在寻找一些建议。
我知道我可能会创建某种“工作”守护程序,我用详细信息发出信号并从中获取更新。它会运行命令并跟踪它们的状态等。但是有没有更简单的方法?
提前致谢。