Я пытаюсь создать простой скрипт 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"}
]
У меня была такая же проблема, это решило ее. (при условии, что у вас есть права root)
# chcon -t unconfined_exec_t /sbin/httpd
вероятно, не очень хорошая идея, если сервер используется недоверенными пользователями
Других решений пока нет …