linux — php exec (‘ps -aeo’) не возвращает все процессы

Я пытаюсь создать простой скрипт php, чтобы вернуть отформатированный список запущенных процессов в формате JSON.

Этот скрипт, конечно, выполняется Apache.

Я все понял, кроме одной маленькой детали. Когда скрипт выполняется apache, команда возвращает только список запущенных процессов, которые принадлежат пользователю apache.

Есть ли что-нибудь вокруг этого?

exec('ps -aeo',$output);
//then some code to parse the $output and return a JSON string

ВЫХОД:

"processes": [
{
"cpu": "0.0",
"pid": "23698",
"user": "apache",
"command": "/usr/sbin/httpd"},
{
"cpu": "0.0",
"pid": "23486",
"user": "apache",
"command": "/usr/sbin/httpd"},
{
"cpu": "0.0",
"pid": "23485",
"user": "apache",
"command": "/usr/sbin/httpd"},
{
"cpu": "0.0",
"pid": "23484",
"user": "apache",
"command": "/usr/sbin/httpd"},
{
"cpu": "0.0",
"pid": "23483",
"user": "apache",
"command": "/usr/sbin/httpd"},
{
"cpu": "0.0",
"pid": "23482",
"user": "apache",
"command": "/usr/sbin/httpd"},
{
"cpu": "0.0",
"pid": "23481",
"user": "apache",
"command": "/usr/sbin/httpd"},
{
"cpu": "0.0",
"pid": "23480",
"user": "apache",
"command": "/usr/sbin/httpd"},
{
"cpu": "0.0",
"pid": "23479",
"user": "apache",
"command": "/usr/sbin/httpd"},
{
"cpu": "0.0",
"pid": "23478",
"user": "apache",
"command": "/usr/sbin/httpd"},
{
"cpu": "0.0",
"pid": "1008",
"user": "root",
"command": "/usr/sbin/httpd"},
{
"cpu": "0.0",
"pid": "959",
"user": "root",
"command": "/usr/sbin/abrtd"}
]

0

Решение

У меня была такая же проблема, это решило ее. (при условии, что у вас есть права root)

# chcon -t unconfined_exec_t /sbin/httpd

см подробный документ здесь

вероятно, не очень хорошая идея, если сервер используется недоверенными пользователями

2

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector