Что-то, препятствующее php видеть, существует ли процесс, используя file_exists в / proc / pid в некоторых установках RHEL / CentOS

1

То, что я пытаюсь сделать

Веб-приложение, которое я разрабатываю, полагается на фоновых работников для определенных задач, и я построил для него набор самодиагностики, который включает проверку работоспособности работников.

Один из шагов включает проверку того, работает ли процесс работника.

Текущая реализация

file_exists("/proc/$pid");

Проблема

Это, похоже, отлично работает для большинства клиентов и на моих dev-машинах (как на Ubuntu, так и на CentOS), но у меня было 2 отчета (один из которых использовал CentOS 6.7, другой RHEL 6.6), который всегда возвращал отрицательный результат.

Я не могу воспроизвести проблему в своих системах, поэтому мне интересно, есть ли какие-либо упрощения, которые могут вызвать подобное поведение. Кто-нибудь сталкивался с этим раньше?

Обходные пути, которые я пробовал

Переключение на ps -p, чтобы проверить процесс с помощью pid (если он возвращает более 1 строки, тогда процесс выполняется) - это работает отлично, пока SELinux не включен, так что, к сожалению, это не решение для меня,

Надеюсь, что кто-то наткнулся на это раньше, пожалуйста, дайте мне знать, если у вас есть идеи. Заранее спасибо!

Теги:

1 ответ

0
Лучший ответ

Похоже, что это была просто директива open_basedir, которая блокировала доступ к /proc.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню