Доброго времени суток!
Есть bash-скрипт, в котором в одном из мест выполняется команда
echo `top -n1 | grep Cpu | awk '{print $2}'` >> $PWD'/logs/meter-proc.log'
Строчка записывает в файл текущую загрузку процессора в %.
При вызове ещё через ssh-консоль проблем никаких нет - всё корректно. Но скрипт необходимо вызывать из PHP. Делаю это так:
$descriptorspec = array(0 => array("pipe", "r"),
1 => array("pipe", "w"),
2 => array("file", "logs/error-output.log", "a"));
$process = proc_open(__DIR__.'/meter.sh', $descriptorspec, $pipes);
Процесс корректно запускается, однако выдаёт ошибку "TERM environment variable not set" именно в месте вызова top. Понял, что данная переменная пуста.
Пробовал вручную записывать в TERM значения xterm, linux, но в любом из этих случаев начинает вылезать ошибка "top failed tty get".
Собственно говоря: как исправить ошибку с TERM при вызове из PHP, либо как иначе получать текущую загрузку процессора в % минуя использование top?
Всё действие происходит на Ubuntu server.
Заранее большое спасибо!
P.S. Прежде чем задавать вопрос долго пробовал спрашивать у Гугла, но без успешно :(