Как безопасно выполнить .sh из php?

Приветствую.
На сервере с centos 7.3 крутятся сотни php демонов; необходимо по запросу узнавать точное их количество.
На данный момент число процессов узнаю с помощью скрипта .sh
ps aux | grep php-cgi | wc -l
Скрипт выполняется по крону раз в минуту, пишет в файлик результат команды.
Прочитать его можно в любой момент; но проблема в том, что из-за минимального интервала cron в минуту число процессов там может быть уже устаревшим.
Давать вебсерверу root права небезопасно.
Как решают подобные задачи те, кто разбирается лучше меня?
  • Вопрос задан
  • 229 просмотров
Решения вопроса 1
Sanasol
@Sanasol Куратор тега PHP
нельзя просто так взять и загуглить ошибку
какой практически смысл в получении количества демонов?
какой смысл в супер точности?

количество php демонов по идее как бы настраивается в конфигах, и даже при динамических настройсках есть какие-то лимиты. То есть +/- там и так известно сколько их может быть или рамки.

Давать вебсерверу root права небезопасно.

а зачем рут права, ps/top достаточно выполнить т.е. сделать выполняемым от любого юзера.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@BorisKorobkov Куратор тега PHP
Web developer
1. root права не нужны. Но для надежности лучше все-таки запретить exec/system

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

3. Количество памяти, процессов и прочего проверять лучше с помощью Nagios. Даже количество процессов - для этого добавьте свой sh-скрипт в /etc/nagios/nrpe.cfg
Ответ написан
@justpusher
Вы можете прочитать напрямую содержимое /proc и узнать количество процессов без запуска сторонних утилит (смотрите /proc/*/cmdline).
Это точно безопасно.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы