我正在为我的公司制作一个扫描服务器,它将用于从 nessus、nmap、nikto 等工具启动扫描。我已经用 PHP 编写了页面,但我需要控制后续的进程(使用 nohup 生成并使用 & 作为背景),因为我需要在扫描完成后执行各种操作(例如通过电子邮件发送它们、从 nessus 服务器下载报告等)。
有人建议我在这里创建一个 PHP 页面与之通信的 python 守护进程。我无休止地用谷歌搜索,但我找不到任何可以从初学者的角度解释通信背后的逻辑的东西(编写守护进程将是我最高级的项目)。例如,我知道 IPC 和 unix 域套接字,但不确定如何在我的情况下使用它们。因此,我正在寻求一些关于我应该做什么的建议或指示。
我想我可以创建一个带有 while 循环的 python 脚本,该脚本不断检查进程是否已终止,并在终止时执行适当的后处理终止操作。该脚本将被守护进程,因此它在后台运行,我会使用 PID 作为参数从 PHP 页面调用它,例如,我可以使用 argparse 模块访问它。
我的逻辑是否正确 - 还是有更好的解决方案?
非常感谢任何帮助,或者只是谷歌的东西!谢谢
最佳答案
我觉得像 gearman肯定会更容易实现这一点。
Gearman 是一个作业服务器,可让您启 Action 业、查询作业是否仍在运行并获取作业的输出(作为文本)。
它支持 PHP 和 Python(以及其他)。
(这个回答让我觉得自己像个推销员)。
关于php - 如何从 PHP 脚本与 python 守护进程通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8537863/