首页 > 解决方案 > PHP手册中的“进程ID不是唯一的”是什么意思?如何获得实际唯一的“进程 ID”?

问题描述

来源:https ://www.php.net/manual/en/function.getmypid.php

警告进程 ID 不是唯一的,因此它们是弱熵源。我们建议不要在依赖安全的上下文中依赖 pid。

“进程ID”怎么可能不是唯一的?我错过了什么?而且getmyuid()同样荒谬,因为它没有返回任何有用的进程ID,而只是:

获取 PHP 脚本所有者的 UID

简而言之:我如何从运行它的地方获得当前(CLI)PHP 进程的某种唯一 ID ?

标签: phpprocesswindows-10pid

解决方案


PID 不是唯一的。如果一个进程死亡,操作系统可能会将该 ID 重新用于新的进程。这不是 PHP 的事情。

如果要生成唯一值,请使用uniqid()

https://www.php.net/manual/en/function.uniqid.php

如果你在 linux 上,你也可以uuidgen在 backtics (``) 中使用:

var_dump(`uuidgen`);

推荐阅读