在一些RHEL/CentOS安装中,通过使用/proc/pid上的file_exists来阻止php查看进程是否存在


Something preventing php from seeing if a process exists by using file_exists on /proc/pid on some RHEL/CentOS installations

我想做什么

我正在开发的web应用程序依赖于后台工作人员来完成某些任务,我已经为它构建了一个自我诊断套件,包括检查工作人员的健康状况。

其中一个步骤包括检查工作进程是否仍在运行。

当前实现

file_exists("/proc/$pid");

问题

对于大多数客户和我的开发机器(Ubuntu和CentOS)来说,这似乎工作得很好,但我有2个报告(一个使用CentOS 6.7,另一个使用RHEL 6.6)的诊断总是返回负面结果。

我无法在我的系统上重现这个问题,所以我想知道是否有任何加固可能导致这种行为。有人以前遇到过这个吗?

我尝试过的变通方法

切换到ps -p通过pid检查进程(如果它返回超过1行,那么进程正在运行)-只要SELinux未启用,这就可以正常工作,所以遗憾的是这不是我的解决方案。

希望有人以前遇到过这个,如果你有任何想法请告诉我。提前感谢!

看起来只是open_basedir指令阻止了对/proc的访问。