У меня очень странная проблема. Я использую следующий код для сохранения значения ЦП clamd, используя top
<?
$clamd_load=rtrim(shell_exec("/usr/bin/top -n1 -b -c | grep \"bin/[c]lamd\" | grep -E -io \" [0-9]{1,3}[.][0-9]{1}[ ]{2}[0-9]{1,3}[.][0-9]{1} \" | awk '{print $1}'"));
if ($clamd_load!=""){
shell_exec("echo \"-$clamd_load-\" >> /tmp/clamd_cpu");
}
?>
Если я выполняю этот скрипт php из консоли, он запускается правильно, возвращая правильное значение $ clamd_load
Если я выполню это Сценарий php с использованием root cron, сценарий просто сохраняет
--
--
--
, возвращая пустой $ clamd_load. Почему скрипт возвращает правильное значение $ clamd_load, если я запускаю его из консоли, и почему $ clamd_load ничего не возвращает, если я запускаю тот же скрипт, используя root cron.
Я часто запускаю php сценарии как cron (с командами оболочки в сценарии), и я никогда раньше не видел этой проблемы. Если я использую ps вместо верхней команды, это работает. Почему top не должен выполняться в моем php сценарии с использованием root cron?