Веб-приложение, которое я разрабатываю, полагается на фоновых работников для определенных задач, и я построил для него набор самодиагностики, который включает проверку работоспособности работников.
Один из шагов включает проверку того, работает ли процесс работника.
file_exists("/proc/$pid");
Это, похоже, отлично работает для большинства клиентов и на моих dev-машинах (как на Ubuntu, так и на CentOS), но у меня было 2 отчета (один из которых использовал CentOS 6.7, другой RHEL 6.6), который всегда возвращал отрицательный результат.
Я не могу воспроизвести проблему в своих системах, поэтому мне интересно, есть ли какие-либо упрощения, которые могут вызвать подобное поведение. Кто-нибудь сталкивался с этим раньше?
Переключение на ps -p, чтобы проверить процесс с помощью pid (если он возвращает более 1 строки, тогда процесс выполняется) - это работает отлично, пока SELinux не включен, так что, к сожалению, это не решение для меня,
Надеюсь, что кто-то наткнулся на это раньше, пожалуйста, дайте мне знать, если у вас есть идеи. Заранее спасибо!
Похоже, что это была просто директива open_basedir, которая блокировала доступ к /proc.