我想做什么
我正在开发的web应用程序依赖于后台工作人员来完成某些任务,我已经为它构建了一个自我诊断套件,包括检查工作人员的健康状况。
其中一个步骤包括检查工作进程是否仍在运行。
当前实现
file_exists("/proc/$pid");
对于大多数客户和我的开发机器(Ubuntu和CentOS)来说,这似乎工作得很好,但我有2个报告(一个使用CentOS 6.7,另一个使用RHEL 6.6)的诊断总是返回负面结果。
我无法在我的系统上重现这个问题,所以我想知道是否有任何加固可能导致这种行为。有人以前遇到过这个吗?
我尝试过的变通方法
切换到ps -p通过pid检查进程(如果它返回超过1行,那么进程正在运行)-只要SELinux未启用,这就可以正常工作,所以遗憾的是这不是我的解决方案。
希望有人以前遇到过这个,如果你有任何想法请告诉我。提前感谢!
看起来只是open_basedir指令阻止了对/proc的访问。