В PHP вы можете использовать exec()
: http://www.php.net/manual/en/function.exec.php
$last = exec('ls', $o, $r);
$o
будет удерживать вывод, а $r
будет содержать код возврата, а $last
будет удерживать последнюю строкувыход.В общем, вы обычно будете использовать его следующим образом:
$last = exec('ls', $o, $r);
if ($r != 0)
{
print 'Error running command';
exit($r);
}
else
print implode("\n", $o);
top
- интерактивная программа, команда будет продолжаться вечно, а PHP / exec () будет продолжать ждать ее завершения.Вы можете использовать top -b -n1
для «пакетного режима».См. top(1)
для получения дополнительной информации об аргументах top.
Если вы хотите более общее решение, которое будет работать для любой команды, вы можете использовать popen()
(или proc_open()
), запущенный из сценария xmlrpc.Это гораздо более сложная установка, требующая некоторых знаний об управлении процессами в UNIX.Делать это правильно - далеко не тривиально ...
PS : аргументы top варьируются от ОС к ОС.В Linux вы используете top -b -n 1
, во FreeBSD это top -b 999
(где 999 - количество отображаемых строк).Не уверен, имеет ли это значение для вас, но хорошо держать затылок.