我想在后台运行一个 php 脚本并将其 PID 存储在数据库中。这样我就可以检查特定脚本是否正在运行(稍后)。
我们可以getmypid用来获取当前的PID。
但根据 PHP 手册
进程 ID 不是唯一的,因此它们是弱熵源。我们建议不要在依赖于安全的上下文中依赖 pid。
...我不能依赖PID。
我的第二个想法是将进程创建时间存储到数据库中。
如何获取当前脚本创建时间?稍后我如何与任务列表进行比较以检查特定脚本是否正在运行?
我在共享主机 windows/linux 环境中运行。
这完全取决于您对目标计算机的访问级别。您可以使用 PHP CLI,存储 PID(它们对于特定时间点是唯一的,因此您不会有 2 个具有相同 PID 的进程正在运行)并在输出中 grep 它们以检查ps -ax它们是否正在运行。如果没有 - 从数据库中删除它们,这样就不会出现相同 PID 的问题。